我的对话框中有一个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);
}
}
答案 0 :(得分:0)
尝试
OnCancel();
而不是PostQuitMessage(0);
请注意,OnCancel()是CDialog的虚方法,所以这是“最正确的”,并且会执行任何可能覆盖默认CDialog行为的特殊代码。