Dialog在Windows Mobile上不能关闭

我创建了一个非常简单的MFC应用程序,当我单击一个按钮时调用一个对话框,并在5秒后发送一个MessageBox。

问题是,当我在第二个对话框中时,我从父窗口中消除了MessageBox(不是单击MessageBox的OK按钮,我单击第二个对话框的空白部分)当我无法关闭对话框时(第二个对话框)单击确定或取消按钮。

为什么?

部分代码:

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向导生成的默认代码。


不知道我完全理解你的问题。 。 。 这听起来像你正试图关闭父窗口时仍显示消息框?

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

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

而不是MessageBox,它将创建一个消息框,允许您将焦点还原到原始窗口(The ::意味着使用MessageBox的全局命名空间版本,这是Windows本机调用而不是MFC)。

链接地址: http://www.djcxy.com/p/39231.html

上一篇: Dialog not close on Windows Mobile

下一篇: ASP.NET MVC 5 generates right url but executes wrong Action