BOOL CMFDialogApp::InitInstance()
{
CMyDialog dlgTest;
m_pMainWnd = &dlgTest;
dlgTest.DoModal();
AfxMessageBox("HELLO");
return FALSE;
}
Вопрос начинающего
я только начинаю переходить на VC++ и соответственно появляется куча вопросов.
один из них:
есть такой код
Код:
почему не появляется МессагеБокс?
по идее если закгрывается диалоговое окно, то он должно появится.
а вот если заремарить строку
Код:
m_pMainWnd = &dlgTest;
то все прекрасно работает.
почему?
плиззззззз, объясните начинающему.
Цитата:
Originally posted by Skolotovich
Приветствую программисткую братию
я только начинаю переходить на VC++ и соответственно появляется куча вопросов.
один из них:
есть такой код
почему не появляется МессагеБокс?
по идее если закгрывается диалоговое окно, то он должно появится.
а вот если заремарить строку
то все прекрасно работает.
почему?
плиззззззз, объясните начинающему.
Приветствую программисткую братию
я только начинаю переходить на VC++ и соответственно появляется куча вопросов.
один из них:
есть такой код
Код:
BOOL CMFDialogApp::InitInstance()
{
CMyDialog dlgTest;
m_pMainWnd = &dlgTest;
dlgTest.DoModal();
AfxMessageBox("HELLO");
return FALSE;
}
{
CMyDialog dlgTest;
m_pMainWnd = &dlgTest;
dlgTest.DoModal();
AfxMessageBox("HELLO");
return FALSE;
}
почему не появляется МессагеБокс?
по идее если закгрывается диалоговое окно, то он должно появится.
а вот если заремарить строку
Код:
m_pMainWnd = &dlgTest;
то все прекрасно работает.
почему?
плиззззззз, объясните начинающему.
Думаю дела у тебя такие:
m_pMainWnd у тебя равен NULL ибо создается диалог в следующей строчке. (ты точку останова поставь и посмотри чему равно). То есть ты делаешь основным окном приложения никакой диалог. Я правда в MFC не сильна, и дома у меня VC не стоит (так что это теория). Как дела обстоят на практике могу рассказать завтра
Цитата:
Originally posted by Sikhaya
Думаю дела у тебя такие:
m_pMainWnd у тебя равен NULL ибо создается диалог в следующей строчке. (ты точку останова поставь и посмотри чему равно). То есть ты делаешь основным окном приложения никакой диалог. Я правда в MFC не сильна, и дома у меня VC не стоит (так что это теория). Как дела обстоят на практике могу рассказать завтра
Думаю дела у тебя такие:
m_pMainWnd у тебя равен NULL ибо создается диалог в следующей строчке. (ты точку останова поставь и посмотри чему равно). То есть ты делаешь основным окном приложения никакой диалог. Я правда в MFC не сильна, и дома у меня VC не стоит (так что это теория). Как дела обстоят на практике могу рассказать завтра
Приветствую
самое интересное посмотреть на то что генерирует визард:
Код:
BOOL CDialogApp::InitInstance()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CDialogDlg dlg;
m_pMainWnd = &dlg; // самое интерессное
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
AfxMessageBox("Test"); // не появляетса
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CDialogDlg dlg;
m_pMainWnd = &dlg; // самое интерессное
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
AfxMessageBox("Test"); // не появляетса
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
строчка с мессаджем просто не появляется.
Хотя слышен характерный для нее бееп, самой панели мессагеБокса нет.
Кривое MFC???
Если нет, объясните плизззззззззззззз.