2009-08-21 18 views
0

ボタンをクリックするとDialogを呼び出す非常に単純なMFCアプリケーションを作成し、5秒後にMessageBoxを送信します。Windows Mobileでダイアログが閉じない

問題は、私が2番目のダイアログに入っていて、親からMessageBoxを却下したときです(2番目のダイアログの空白部分をクリックします)。ダイアログ)をクリックして、OKまたはCANCELボタンをクリックします。

なぜですか?コードの

パート:

 
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ウィザードによって生成されるデフォルトのコードです。

答えて

0

あなたの質問は完全にわかりません。 。 。メッセージボックスがまだ表示されているときに親ウィンドウを閉じようとしているようですね。

この場合、親ウィンドウはメッセージボックスを所有し、メッセージボックスが閉じられるまでフォーカスを取得できません。あなたはまだ元のウィンドウに戻って集中することができますメッセージボックスを作成する代わりに、メッセージボックスの

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

を、使用して試みることができる(:: Windowsのメッセージボックスのグローバル名前空間のバージョンを、使用することを意味しますMFCとは対照的にネイティブコール)。

関連する問題