对话框未在Windows Mobile上关闭

时间:2009-08-21 15:27:02

标签: mfc mobile dialog

我制作了一个非常简单的MFC应用程序,当我点击一个按钮时调用一个Dialog,并在5秒后发送一个MessageBox。

问题是,当我在第二个对话框中并从父对象中解除MessageBox时(不是单击MessageBox的OK按钮。我单击第二个对话框的空白部分)我无法关闭此对话框(第二个对话框) )当我点击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);
}

第二个Dialog是MFC向导生成的默认代码。

1 个答案:

答案 0 :(得分:0)

不确定我完全理解你的问题。 。 。听起来你还在尝试关闭父窗口时仍然显示消息框?

如果是这种情况,父窗口拥有消息框,并且在消息框关闭之前不允许获取焦点。你可以尝试使用

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

而不是MessageBox,它将创建一个消息框,允许您仍然重新关注原始窗口(这意味着使用MessageBox的全局命名空间版本,这是Windows本机调用而不是MFC)。