VC6.0 MFC点击编辑框弹出对话框

2023-11-03

在写界面的用于触屏时,往往需要编辑框弹出盘来进行输入,下面就将我思路写一下吧,

1.刚开始在网让找一些这方面的资料,结果在论坛中有发现这样一个帖子,见面的链接:

http://topic.csdn.net/u/20100630/15/728f2d71-6958-44ab-802e-e0dbc23f2e58.html

看过之后有一些思路,就是派生一个编辑框类,在派生的类中处理PreTranslateMessage,

于是写代码如下:

BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)  
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hWnd = ::GetFocus();
int iID=::GetDlgCtrlID(hWnd);
if(iID==IDC_EDIT1)
{
AfxMessageBox(_T("点我!"));
}
}
return CEdit::PreTranslateMessage(pMsg);
}

可是还不能达到我的预期效果,第一次点击了编辑框1后无反应,在点二次编辑框1后,每次再点对话框的任何位置还是会弹出对话框,

于是想,难道这种思路不对?

但是突然间想到,在执行完AfxMessageBox(_T("点我!"));后接着执行了return CEdit::PreTranslateMessage(pMsg);

所以跟以前没有什么 区别,于是在AfxMessageBox(_T("点我!"));后追加 return true;这样执行完AfxMessageBox(_T("点我!"));后

就不执行了return CEdit::PreTranslateMessage(pMsg);试了一下,第一次点击了编辑框1后无反应,在点二次编辑框1后弹出相应的提示,

每次再点对话框的任何位置不会弹出对话框,目标达到高兴中....

但是问题又来了, 假如在对话中有两个编辑框,一个为编辑框1,另一个为编辑框2,则再按上面的代码写:

BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)  
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hWnd = ::GetFocus();
int iID=::GetDlgCtrlID(hWnd);
if(iID==IDC_EDIT1)
{
AfxMessageBox(_T("1"));
}

else if(iID==IDC_EDIT2)
{
AfxMessageBox(_T("2"));

}

}
return CEdit::PreTranslateMessage(pMsg);
}

这样执行程序,发面在第一次点击了编辑框1后,如前面一样,无反应,在第二次编辑框1才执行AfxMessageBox(_T("1"));

再点编辑框2,还是会执行AfxMessageBox(_T("1"));无语了,思来想去,原来是HWND hWnd = ::GetFocus();在做怪,因为

这是在PreTranslateMessage中执行HWND hWnd = ::GetFocus();所以编辑框还没有得到焦点,此时还是编辑框1的

焦点,把以还是执行AfxMessageBox(_T("1"));于是想着,不在PreTranslateMessage处理单击事件了,

直接在Edit中的单击事件中处理,于是代码如下:

void CMyEdit::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
HWND hwnd=::GetFocus();
int iID=::GetDlgCtrlID(hwnd);
if(iID==IDC_EDIT1)
{
AfxMessageBox("1");
}
   else if(iID==IDC_EDIT2)
{
AfxMessageBox("2");
}
CEdit::OnLButtonUp(nFlags, point);
}

这样执行文件,效果达到了!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VC6.0 MFC点击编辑框弹出对话框 的相关文章

  • 安装VS2008后,在winnt.h中出现编译错误

    我正在尝试将我们的项目从 VS2005 转移到 VS2008 并且在 MFC 项目上遇到此构建错误 C Program Files Microsoft SDKs Windows v6 0A include winnt h 236 error
  • 在 Visual Studio 2013 中显示带有偏移量的控件

    最近 我将源代码从 Visual Studio 2010 迁移到 Visual Studio 2013 在 Visual Studio 2013 中构建后 控件将显示有偏移 单击下面的链接查看图像 链接到图像 https i stack i
  • MFC winMain 如何最终进入可执行文件?

    In MFC wWinMain定义于appmodul cpp 据我所知 该文件内置于 mfc90ud dll 中 但是 当我运行我的应用程序时 调用堆栈显示MyApplication exe wWinMain 它是如何采取的wWinMain
  • 菜单被裁剪

    我有一个MFC项目 它支持 40 多种语言 我的电脑上有两个显示器 它们都是不同尺寸的显示器和不同的分辨率 如果我将应用程序移至较小的显示器上 则不会显示完整的语言菜单 我知道它会显示滚动条 为什么不是呢 我的菜单是标准菜单 没有什么花哨
  • Boost::序列化和 MFC Doc/View 架构

    我正在移植现有的 MFC C 应用程序以对 XML 文件使用 Boost Serialization 我的 CDocument 对象包含应用程序的所有数据 我已将序列化函数实现为 template
  • SetWindowPos() 函数不移动窗口?

    我有一个对话框 我想将其放置在另一个对话框中 并相对于主对话框上的其中一个控件进行定位 void CspAceDlg DrawResultsArea CWnd pTabCtl GetDlgItem IDC BUILDTABS CRect r
  • 如何显示非模式对话框并立即在其中显示信息?

    我想在屏幕上显示一个无模式对话框并在其中显示一些信息 但是 如果我按照以下方式使用它 则会出现一些问题 function showdialog XXX heavy work update the dialog heavy work upda
  • 升级后的 MFC 应用程序看起来仍然很旧

    我有一个用 VC6 编写的 MFC 应用程序 我已将其升级到 VS2015 并且它可以构建并运行 该应用程序是一个主可执行文件 其中包含许多包含对话框的 DLL 然而应用仍然looks就像用 VC6 构建的一样 所有 GUI 组件都没有 W
  • MFC:如何捕获Web浏览器控件中的链接单击事件?

    我有一个带有 Web 控件的 MFC 应用程序 单击可单击链接时 它将使用 IE 打开 而不是默认浏览器 问题 有没有办法强制使用默认浏览器打开它 如果没有 我如何捕获链接单击事件 以便稍后可以操纵单击事件 谢谢 不 据我所知还没有 查看有
  • AfxGetAppName() 返回垃圾字符

    我的应用程序中有以下代码行 CString strAppName AfxGetAppName 有时会充满strAppName出现了垃圾字符 我不明白为什么 有人有主意吗 TIA 如果你改变的话这是可能的m pszAppName手动 在应用程
  • 如何在 MFC 中创建 GUI

    我需要能够即时创建指南 MFC中有没有办法做到这一点 我了解了如何在 net 中做到这一点 但我们还没有做到这一点 如果没有 您是否有一些我可以使用的代码的指针 don t forget to add Rpcrt4 lib to your
  • 默认情况下启用或禁用菜单项。为什么?

    我有一些遗留代码 由于某种原因 菜单项在启动时被启用或禁用 我的问题是 如何 有没有办法在不调用 EnableMenuItem 函数的情况下执行此操作 MFC 有没有办法做与资源设置所说相反的事情 我也不明白为什么当最后一个子窗口关闭时 当
  • 创建非托管常规 MFC DLL 并从托管 C++ .NET 应用程序调用它时出现问题

    我有几个关于 DLL 的问题 我尝试了很多 但无法获得完整的图片 大多数示例都是用 C 等编写的 使用 VS2005 中的向导 我创建了一个非托管 MFC 常规 DLL 由于剩余代码 必须是 MFC 然后我尝试将其导入 VS2005 管理的
  • 禁用/启用 MFC 功能包的功能区按钮

    我正在使用 MFC 功能包 并且功能区栏上有一些按钮 即 CMFCRibbonButton 的实例 问题是我想在某些条件下启用和禁用其中一些 但在运行时 我怎样才能做到这一点 因为没有具体的方法 我听说解决方案是在运行时附加 分离事件处理程
  • 如何通过单击 MainFrame 内的按钮来更改 MFC 视图

    我想通过单击窗口内的按钮来更改呈现的视图像这样 https i stack imgur com 3IA2o png 我的项目设置 我制作了一个没有文档 视图支持的 MFC 项目 SDI 我在设计器中又创建了两个视图并向它们添加了类 新的视图
  • .NET(或 MFC)的高速图形控件?

    我需要编写一个数字示波器类型的应用程序 有很多很棒的静态绘图控件 但我需要一些可以绘制每秒处理 4000 个样本的 16 条轨迹的东西 有人知道 NET 的高速图形控件吗 我什至会选择 MFC 因为它可以封装到 NET 控件中 谢谢您的帮助
  • C++ 检查 unicode 字符是否为全角

    如何检查unicode字符是否是全角 我使用Win32 MFC 例如 中是全宽 A不是全角 是全宽 F不是全宽 你需要的是检索东亚宽度 http www unicode org reports tr11 的角色 您可以通过解析来做到这一点东
  • 如何通过MFC将应用程序设置保存到注册表中?

    我有一个由 MFC 项目向导创建的 MFC 应用程序 我想在注册表中保存 读取应用程序设置 所以问了这个question https stackoverflow com questions 1880275 good c registry w
  • 如何在 MFC 中调整对话框大小时移动控件?

    我已经在 MFC 中创建了对话框视图 从下图中可以清楚地看到 如滑块控件和编辑框等 当我调整对话框大小时 这些控件不会移动 在此输入图像描述 https i stack imgur com 7OxAK jpg 我想移动控件以适应对话框 但不
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序

随机推荐

  • qt中的frame设置边框和颜色,里面控件不变

    需要指定样式对象 比如我的QFrame的名称是frame 2output 那么在设置样式的时候 其代码就如下 frame 2output border radius 10px border 1px solid rgb 100 100 189
  • Mvc项目实例 MvcMusicStore

    原文链接 http www cnblogs com wenming205 archive 2010 08 08 1795341 html 文章不错 看完之后搭建项目就没什么问题了 其他很多就是经验问题了 做过webform的 其实也就需要知
  • Unity关键概念

    Unity是一款跨平台的游戏引擎和开发工具 用于创建2D和3D游戏 交互式内容和应用程序 它提供了一个强大的开发环境 使开发者能够轻松地设计 开发和部署高质量的游戏和应用程序 以下是Unity的几个关键概念 游戏对象 Game Object
  • ubuntu盒盖不睡眠

    修改配置文件里对应的参数即可 需要root权限 需要重启 1 打开文件 etc systemd logind conf 能看到三个控制盒盖后动作的选项 HandleLidSwitch suspend HandleLidSwitchExter
  • 公司现有一个工作组workgroup,需要添加samba服务器作为文件服务器,并发布共享目录

    需求 公司现有一个工作组workgroup 需要添加samba服务器作为文件服务器 并发布共享目录 share 共享名为public 此共享目录允许所有员工访问 samba服务器配置流程 强调 先关闭selinux和防火墙 1 安装samb
  • 【stm32疑难杂症】:Error: L6218E: Undefined symbol TIM_Cmd (referred from timer.o).

    项目场景 在使用工程是发现问题 OBJ OLED axf Error L6218E Undefined symbol TIM Cmd referred from timer o OBJ OLED axf Error L6218E Undef
  • Windows一键清空回收站

    作为一个重度整洁患者 虽然生活较为邋遢 但是 桌面一定是整理的干干净净 桌面上的快捷方式没有几个 甚至打开计算机用的也是快捷键 那么就碰到了一个问题 回收站 它既不美观 又放在桌面上 甚至连快捷键都没有 那我删除的文件那该怎么清理 大家可能
  • KCF目标跟踪方法分析与总结

    KCF目标跟踪方法分析与总结 两个竖杠是什么数学符号 就是这个 这个符号叫做范数 它事实上是由线性赋范空间到非负实数的映射 在线性赋范空间中 它可以表示空间中的点与原点间的距离 两点间的距离也是用两点之差的范数来表示的 范数所满足的条件有
  • J2EE之自定义框架知识(下篇 综合运用增删改查)

    J2EE之自定义框架知识 下篇 综合运用增删改查 文章目录 J2EE之自定义框架知识 下篇 综合运用增删改查 前言 所需文件 1 将框架打成jar包 然后导入新工程 并且把框架的依赖jar包导入进去 1 1将框架打成jar包 1 2 导入所
  • 【51单片机学习笔记】基于STC11F04E的蜂鸣器音乐播放器

    微型播放器 基于STC11F04E的蜂鸣器控制 青岛科技大学 信息科学技术学院 集成162 Listen C 一 简介 1 任务需求 制作一个音乐播放器 能够播放生日快乐歌曲 2 制作原理 基于微控制器通过产生不同频率的方波使蜂鸣器发出特定
  • STM32CubeIDE SPI LCD曲线显示

    随言 spi lcd屏幕其实不适合用于曲线显示 数据传输太慢了而且传输数据过程还需传一些设置命令 但是需求来了 软硬件压榨一下也能做出来 硬件 STM32F407 1 54寸ST7789屏幕 STM32CubeIDE SPI配置速度最快 使
  • Hbase单机模式配置

    配置hbase env sh文件 vim usr local hbase conf hbase env sh 把java环境配置上去 export JAVA HOME export JAVA HOME tools JDK jdk1 8 0
  • JSP config对象的简介说明

    转自 JSP config对象的简介说明 下文笔者将讲述JSP中config对象的简介说明 如下所示 config对象 指JSP的配置信息 它实际就是一个ServletConfig实例 我们可以在config对象上获取Servlet的初始化
  • 如何与人交流——程序员,赶紧生个孩子吧!

    原文作者 Jeff Atwood 每个家庭都应该生一个孩子吗 我不太愿意这样建议 因为当不当父母完全是个人选择 我始终尽量避免鼓吹为人父母的经验 但我越深入这个角色 我便越是相信 没什么比拥有一个小孩更能折射出成人世界里源源不断的荒唐 成为
  • mysql 怎么区分大小写_MYSQL区分大小写

    MYSQL区分大小写 1 linux下mysql安装完后是默认 区分表名的大小写 不区分列名的大小写 2 用root帐号登录后 在 etc my cnf 中的 mysqld 后添加添加lower case table names 1 重启M
  • 64位windows7 关机时Wdf01000.sys蓝屏

    我的电脑是 thinkpad t430 据说thinkpad的电源管理器 6 0以上版本 与t430不兼容 而导致蓝屏重启 卸载电源管理器后 微软对0x0000007E解释的原因有这几种 如果在 Windows 安装过程中第一次重新启动后或
  • 各协议调制与编码

    15693 读写器调制方式唯一ASK 编码方式1 out 4 1 out 256可检测出来 由GUI指定 标签调制方式由读写器命令指定 编码唯一 曼彻斯特 18000 读写器调制方式由什么决定 编码方式唯一 PIE 标签调制方式由标签供应商
  • 基于 ESP32-C3 的 UART/ SPI 2.4G WiFi 透传模块(可用作智能车图传)

    基于 ESP32 C3 的 UART SPI 2 4G WiFi 透传模块 可用作智能车图传 本项目为基于乐鑫公司的 ESP32 C3 芯片制作的 WiFi 透传模块 具有多个通信协议接口 UART SPI 设计初衷是为了方便全国大学生智能
  • mybatis-plus调用自身的 selectById 方法报错:org.apache.ibatis.binding.BindingException:

    mybatis plus的版本号是 2 0 1 在调用自身的insert T 的时候没有报错 但是执行update报错 调用selectById deleteById的时候也报错 也就是涉及到需要主键识别的都报错 语句如下 接口与实现都是M
  • VC6.0 MFC点击编辑框弹出对话框

    在写界面的用于触屏时 往往需要编辑框弹出盘来进行输入 下面就将我思路写一下吧 1 刚开始在网让找一些这方面的资料 结果在论坛中有发现这样一个帖子 见面的链接 http topic csdn net u 20100630 15 728f2d7