1

我的对话框中有一个 CEdit 字段EN_KILLFOCUS,因此当用户输入无效数据时,当焦点从该字段移开并且焦点返回 CEdit 字段时,会显示一条警告消息,以便用户可以输入正确的数据。如果用户输入无效数据并单击取消按钮,则还会显示一条警告消息,这是不希望的,因为用户无论如何都试图取消他的操作。当用户单击 CANCEL 按钮时,我尝试实现 PostQuitMessage,但这会关闭整个应用程序。当用户单击 CANCEL 按钮时,我只希望我的对话框关闭。单击取消按钮后,有什么方法可以立即关闭对话框。这是我尝试过的代码。

void CMARPropWnd::OnParentNotify(UINT message, LPARAM lParam)   
{
    CCDialog::OnParentNotify(message, lParam); 
    // TODO: Add your message handler code here 
    CPoint ptButtonDown(LOWORD(lParam),HIWORD(lParam)); 
    if ((message == WM_LBUTTONDOWN)  && (ChildWindowFromPoint(ptButtonDown) == GetDlgItem(eMARPropWndCancelBtnId))) 
    { 
        PostQuitMessage(0);
    } 
}
4

1 回答 1

0

尝试

OnCancel();

而不是 PostQuitMessage(0);

注意 OnCancel() 是 CDialog 的一个虚方法,所以这是“最正确的”,并且会执行任何可能覆盖默认 CDialog 行为的特殊代码。

于 2014-12-29T18:39:51.057 回答