如何在MFC中阻止对话框上的鼠标输入

时间:2015-09-15 09:14:44

标签: mfc mouseevent hidden editcontrol

我有一个基于对话框的MFC应用程序。我有一个隐藏的编辑控件,它具有读取USB连接的扫描仪输入的默认焦点。对话框上的所有其他控件都是只读的。但是当用户单击任何控件时,隐藏的编辑控件将失去焦点。如何解决问题,即使用户在任何地方点击对话框,这个隐藏的编辑控件也会有焦点。

1 个答案:

答案 0 :(得分:1)

好吧,MFC应用程序中的大多数鼠标消息都已发布但未发送。因此,您可以覆盖CDialog派生类中的PreTranslateMessage(MSG *),然后通过返回TRUE来阻止消息调度或FALSE以允许正常处理来使用这些消息。

BOOLCMyDlg::PreTranslateMessage(MSG* pMsg)
{
    switch (pMsg->message)
    {
    case WM_LBUTTONDOWN:
    case WM_RBUTTONDOWN:
    ///etc, etc
        {
            // might want other tests
            return TRUE;
        } break;
    }
    return CDialog::PreTranslateMessage(MSG* pMsg);
}