Диалог не закрывается в Windows Mobile - PullRequest
0 голосов
/ 21 августа 2009

Я сделал очень простое приложение MFC, которое вызывает диалог, когда я нажимаю на кнопку, и отправляет MessageBox через 5 секунд.

Проблема в том, что когда я был во втором диалоговом окне и закрывал MessageBox от родителя (не нажимал кнопку OK в MessageBox. Я щелкаю пустую часть второго диалога), я не могу закрыть это диалоговое окно ) когда я нажимаю кнопку ОК или ОТМЕНА.

Почему?

Часть кода:

Main Dlg:
BOOL Cmult_rc_testDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);         // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon

    SetTimer(1, 5000, NULL);

    return TRUE;  // return TRUE  unless you set the focus to a control
}

void Cmult_rc_testDlg::OnBnClickedButton1()
{
    CDlg1 a;
    a.DoModal();
}

void Cmult_rc_testDlg::OnTimer(UINT_PTR nIDEvent)
{
    KillTimer(nIDEvent);
    MessageBox(L"oi");

    CDialog::OnTimer(nIDEvent);
}

Второй диалог - это код по умолчанию, сгенерированный мастером MFC.

1 Ответ

0 голосов
/ 21 августа 2009

Не уверен, что полностью понимаю ваш вопрос. , , Похоже, вы пытаетесь закрыть родительское окно, когда окно сообщения все еще отображается?

В этом случае родительское окно владеет окном сообщения и не может получить фокус, пока окно сообщения не будет закрыто. Вы можете попробовать использовать

::MessageBox(NULL, L"oi", L"MessageBox", MB_OK);

вместо MessageBox, который создаст окно сообщения, которое позволит вам сосредоточиться на исходном окне (The :: означает использование глобальной версии пространства имен MessageBox, которая является собственным вызовом Windows, а не MFC).

...