2013-08-19 5 views
0

Я являюсь новичком в программировании MFC. Я уже написал программу, и я хочу отобразить программу в графическом интерфейсе. Поэтому я использую диалог MFC для его реализации, но при запуске он не работает.Как вставить мою программу в диалог MFC?

После нажатия кнопки OK нажата:

void CTest1Dlg::OnBnClickedOk() 
{ 
    UpdateData(); 
    FILE *stream; 
    freopen_s(&stream, "out_file.ps", "w", stdout); // reopen stream as .ps 
    if (mode == 1)         //main() in my code 
    { 
    ActiveAuthoring(); 
    } 
    else if (mode == 0) 
    { 
    XYAuthoring(); 
    } 
    else 
    { 
    ActiveAuthoring(); 
    } 
    cout<<"showpage"<<endl; 
    UpdateData(FALSE); 
    OnOK(); 
} 

Мой код в converter.cpp, поэтому сначала я изменить converter.cpp к converter.h и включить его в Test1Dlg.cpp. И затем, когда кнопка OK запустит main() в моем коде.

Однако я обнаружил, что, по-видимому, параметр не переносится с графического интерфейса на мой код, хотя я имею в виду блок управления редактированием для каждого параметра. Поэтому диалог не работает. Может кто-нибудь мне помочь?

EDIT

this

Восемь ящиков редактировать контрольные параметры, которые я использовал в моей coverter.cpp.

Мой код предназначен для использования восьми параметров для генерации некоторых строк, эти строки сохраняются в файле с именем out_file, формат которого .ps.

+0

Какой параметр? – doctorlove

+0

Что такое "stdout"? Вы хотите написать на консоль? Я думаю, что MFC не может напрямую писать на консоль. Должно быть вызвано нечто вроде 'AttachConsole'. –

+0

@doctorlove Я обновил свою проблему. В моем коде есть восемь параметров, как показано на рис. –

ответ

0

Существует два основных способа получения данных из диалоговых элементов управления «ваш код» ... если вы используете диалоговое окно Visual Studio и добавляете туда элементы управления, он будет генерировать код внутри virtual void DoDataExchange(CDataExchange* pDX), чтобы вы могли перемещаться данные в и из ваших элементов управления, когда диалог инициализируется и завершается. У вас будет строка вроде DDX_Text(pDX, IDC_DIGITS, m_Digits);, которую добавляет IDE, которая делает обмен. Вы также можете просто установить и получить данные напрямую, если хотите, например. GetDlgItem(IDC_DIGITS)->GetWindowText(m_Digits);