当前位置: 首页 > 知识库问答 >
问题:

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

刘和玉
2023-03-14

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

共有1个答案

松英叡
2023-03-14

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);
}
 类似资料:
  • 我有一个MFC项目,我正在工作。在主对话框中,有一个按钮可以为用户输入打开子对话框。然后,当在子框中单击确定时,在父对话框中将此数据设置为变量。这一点都很好用。 现在,子对话框中的文本框初始化为子对话框的OnInitDialog()中的预置值。我希望这些值初始化为它们在父对话框中连接到的变量。

  • 上一章我们为 Scribble 新增了一个【Pen】选单,其中第二个命令项【Pen Width...】准备用来提供一个对话框,让使用者设定笔的宽度。每一线条都可以拥有自己的笔宽。原预设粗笔是5个图素宽,细笔是2个图素宽。 为了这样的目的,在对话框中放个 Spin 控制组件是极佳的选择。Spin 就是那种有着上下小三角形箭头、可搭配一个文字显示器的控制组件,有点像转轮,用来选择数字最合适: 但是,S

  • 我有一个基于MFC对话框的应用程序。用户可以更改对话框的语言,我通过关闭现有对话框并使用更改的语言打开另一个对话框来做到这一点。问题是任务栏中的效果是删除了一个图标,并在其位置创建了另一个相同的图标。如果我的应用程序的图标不是任务栏中的最后一个图标,它将被视为移动到任务栏图标集的末尾。 我想保留图标在任务栏中的位置,而不是防止图标闪烁。我该怎么做? 应用程序必须支持从Windows XP到Wind

  • 问题内容: 我不尝试用YYYY-MM-DD或dd / MM / YYYY格式化日期。我在问 LocalDate的字面格式。 我刚开始学习Java,并且正在使用称为BlueJ的IDE。我想 创建一个测试方法。 屏幕截图将显示我正在尝试做的事情 忽略底部的错误部分 现在,从构造函数开始,我们知道它需要一个int,LocalDate和一个 double。我在网上搜索后发现 https://www.jav

  • 我没有尝试将日期格式化为YYYY-MM-DD或DD/MM/YYYY。我想问一下LocalDate的文字格式。 我刚开始学习Java,我正在使用这个名为BlueJ的IDE。我想创建一个测试方法。 从构造函数中我们知道它需要int、LocalDate和double。我在网上搜索了一下,找到了 https://www.javabrahman.com/java-8/java-8-working-with-

  • 问题内容: 当我输入数字时,字母和特殊字符也会显示在输入字段中。我只想显示数字。如何阻止他们? 问题答案: 如果您不喜欢传入键值,请尝试阻止默认行为: