2015-03-21 3 views
0

Я создал новое диалоговое окно (Visual Studio 2012, диалог на основе MFC приложение) и вызывать его из меню программы, как это:MessageBox в окнах Dialog (VS 2012, MFC C++)

CDialog dlg(IDD_Dialog1); 
dlg.DoModal(); 

В новом окне (в IDD_Dialog1) я пытаюсь создать MessageBox. Нажатием кнопки MessageBox не отображается.

Как это сделать правильно?

+0

Вы должны вбить новый класс от 'CDialog', названный, например' CMyDialog'. Вы можете искать учебные пособия на «CDialog», их много. Или добавьте новое диалоговое окно в разделе ресурсов, дважды щелкните диалог в ресурсе, Visual Studio автоматически создаст класс для вас. В редакторе ресурсов вставьте кнопку в диалоговом окне, дважды щелкните по кнопке, VS должен создать функцию для обработки того, что происходит, когда вы нажимаете кнопку. –

+0

Можете ли вы поделиться некоторыми кодами? –

+0

Пожалуйста, покажите код, который использует _MessageBox_. Или попробуйте использовать [AfxMessageBox] (https://msdn.microsoft.com/en-us/library/as6se7cb (v = vs.110) .aspx). – rrirower

ответ

1

Вот базовый код, который вам не нужен. Лучше использовать мастер Visual Studio для создания приложения MFC, диалога или чего-то еще, затем перейдите в редактор ресурсов, создайте диалоговое окно, дважды щелкните по этому диалоговому окну в редакторе ресурсов, и это будет сделано для вас. Хотя до сих пор в редакторе ресурсов, перетащить & падение кнопку в диалоговом окне, дважды щелкните на этой кнопке, который вы только что упала в ...

//mydialog.h 
class CMyDialog : public CDialog 
{ 
public: 
    CMyDialog(int id, CWnd* parent = NULL); 
    void OnButton1(); 
    DECLARE_MESSAGE_MAP() 
}; 

//mydialog.cpp 
BEGIN_MESSAGE_MAP(CMyDialog, CDialog) 
    ON_COMMAND(IDC_BUTTON1, OnButton1) 
END_MESSAGE_MAP() 

CMyDialog::CMyDialog(int id, CWnd* parent) : CDialog(id, parent){ 
} 

void CMyDialog::OnButton1(){ 
    MessageBox(L"hello world"); 
} 

//myapp.cpp 
BOOL CMyApp::InitInstance() 
{ 
    CWinApp::InitInstance(); 
    CMyDialog dlg(IDD_DIALOG1); 
    dlg.DoModal(); 
    return 0; 
} 
Смежные вопросы