Простой вопрос по VC++ 7.0 MFC
От: ibrusok  
Дата: 02.11.05 16:54
Оценка:
Поправлено форматирование текста. — SchweinDeBurg

Извините за тупость. Господа, расскажите пожалуйста про одну мою проблему, сам я пока ужасно понимаю vc++:
Создан простецкий MFC проект, код:

BOOL CTMP5App::InitInstance()
{

// ....


    CTMP5Dlg 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
    }

    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application's message pump.
    return FALSE;
}

как вы видите, это отлавливат нажатия на кнопки OK и CANCEL в программе, но одно большое но, почему программа завершает свою работу? Мне нужно вставить код обработки, в событийное нажатие клавиши, вот именно тут: например нажал OK, вылезает messageboxa и продолжает прога работать. Но я просто в тупости — как это наладить?
в чём проблема, почему уходит в закрытие прога, как изменить это закрытие на продолжение работы?

Я на самом деле решил этот вопрос не много по иному, я вообще InitInstance() не затрагивал, а вызвал немного по иному. Но очень хочется понять, в чём дело...




03.11.05 07:45: Перенесено модератором из 'C/C++' — Odi$$ey
Re: Простой вопрос по VC++ 7.0 MFC
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 02.11.05 16:59
Оценка:
Здравствуйте, ibrusok, Вы писали:

I>Извините за тупость.


Мда...

BOOL CTMP5App::InitInstance()
{
// ....
    CTMP5Dlg 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
    }
    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application's message pump.
    return FALSE;
}
Re: Простой вопрос по VC++ 7.0 MFC
От: Liteion  
Дата: 03.11.05 06:24
Оценка:
Ответ на твой вопрос содержится в последнем комментарии:
"После того как диалог будет закрыт, возврат FALSE завершит приложение, TRUE — запустит обработку сообщений".
Re: Простой вопрос по VC++ 7.0 MFC
От: gandalf_g Россия  
Дата: 03.11.05 08:08
Оценка:
Здравствуйте, ibrusok, Вы писали:

I>Извините за тупость. Господа, расскажите пожалуйста про одну мою проблему, сам я пока ужасно понимаю vc++:

I>Создан простецкий MFC проект, код:

[skipped]

I>как вы видите, это отлавливат нажатия на кнопки OK и CANCEL в программе, но одно большое но, почему программа завершает свою работу? Мне нужно вставить код обработки, в событийное нажатие клавиши, вот именно тут: например нажал OK, вылезает messageboxa и продолжает прога работать. Но я просто в тупости — как это наладить?


он не отлавливает нажатие, он их обрабатывает по окончании диалога, т.е. диалог закрывается и возвращает результат... если тебе нужно обработать самому нажание в диалоге OK или Cancel, то добавь соответствующие обработчики в сам диалог (OnOk, OnCancel как помню)
Have fun...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.