mfc - MFC对话框中如何阻止鼠标输入

标签 mfc mouseevent hidden editcontrol

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

最佳答案

MFC 应用程序中的大多数鼠标消息都是发布而不是发送的。因此,您可以在 CDialog 派生类中重写 PreTranslateMessage(MSG*),然后通过返回 TRUE 以阻止消息分派(dispatch)或返回 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);
}

关于mfc - MFC对话框中如何阻止鼠标输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32582185/

相关文章:

c++ - 为什么我的类析构函数会立即被调用?

javascript - 如果用户按 Enter 或单击外部,则保留元素的新 html 值

javascript - 如何以编程方式选择 jsTree 中的隐藏节点?

从数据库输入到联系表的php mysql数据

javascript - jquery 是隐藏的所有图像

c++ - 无需太多更改即可将 MFC 应用程序设置为最大分辨率

mfc - 如何在 VS2017 中禁用 "warning MSB8051: Support for targeting Windows XP is deprecated"?

java - 仅当在 Java 中按下鼠标时如何让 mouseEntered 执行

javascript - 在 ipad 上触发 unhover/mouseout/blur

C++ VisualStudio 获取文件版本信息