Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос начинающего

2.0K
12 марта 2003 года
Skolotovich
39 / / 13.12.2002
Приветствую программисткую братию

я только начинаю переходить на VC++ и соответственно появляется куча вопросов.
один из них:

есть такой код

 
Код:
BOOL CMFDialogApp::InitInstance()
{
    CMyDialog dlgTest;

    m_pMainWnd = &dlgTest;
    dlgTest.DoModal();
    AfxMessageBox("HELLO");
   
    return FALSE;
}


почему не появляется МессагеБокс?
по идее если закгрывается диалоговое окно, то он должно появится.

а вот если заремарить строку
 
Код:
m_pMainWnd = &dlgTest;

то все прекрасно работает.
почему?
плиззззззз, объясните начинающему.
3.5K
15 марта 2003 года
Sikhaya
7 / / 04.03.2003
Цитата:
Originally posted by Skolotovich
Приветствую программисткую братию

я только начинаю переходить на VC++ и соответственно появляется куча вопросов.
один из них:

есть такой код

 
Код:
BOOL CMFDialogApp::InitInstance()
{
    CMyDialog dlgTest;

    m_pMainWnd = &dlgTest;
    dlgTest.DoModal();
    AfxMessageBox("HELLO");
   
    return FALSE;
}


почему не появляется МессагеБокс?
по идее если закгрывается диалоговое окно, то он должно появится.


а вот если заремарить строку
 
Код:
m_pMainWnd = &dlgTest;

то все прекрасно работает.
почему?
плиззззззз, объясните начинающему.



Думаю дела у тебя такие:
m_pMainWnd у тебя равен NULL ибо создается диалог в следующей строчке. (ты точку останова поставь и посмотри чему равно). То есть ты делаешь основным окном приложения никакой диалог. Я правда в MFC не сильна, и дома у меня VC не стоит (так что это теория). Как дела обстоят на практике могу рассказать завтра

2.0K
17 марта 2003 года
Skolotovich
39 / / 13.12.2002
Цитата:
Originally posted by Sikhaya


Думаю дела у тебя такие:
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;
}


строчка с мессаджем просто не появляется.
Хотя слышен характерный для нее бееп, самой панели мессагеБокса нет.

Кривое MFC???
Если нет, объясните плизззззззззззззз.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог