MDI程序的加速键处理

梦之领域 2013-05-14 06:49:44
  while (GetMessage (&msg, NULL, 0, 0))
{
if (/*!TranslateMDISysAccel (hwndClient, &msg) &&*/ // 注释掉这一句发现加速键照常运作
!TranslateAccelerator (hwndFrame, hAccel, &msg))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
}


我发现注释掉TranslateMDISysAccel加速键照常运行,这是什么原因?
菜单情况如下图:



...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chivalry 2013-05-16
  • 打赏
  • 举报
回复
http://bbs.dlut.edu.cn/bbsanc.php?path=%2Fgroups%2FGROUP_3%2FCrHack%2FCrack%2Fasm%2Fwinasm%2Fi32 百度一下不就有么。。。 在客户区可以有多个子窗口.所有的子窗口都位于客户区. 你可以通过按Ctrl+F4键来关闭子窗口,还可以通过按Ctrl+Tab键在子窗口之间来切 换. 你必须在你的框架窗口的消息循环中调用 TranslateMDISysAccel . 假如你希望Windows为你处理MDI相关的加速键,比如Ctrl+F4,Ctrl+Tab,那么这是必 须的.
梦之领域 2013-05-16
  • 打赏
  • 举报
回复
引用 3 楼 jimoguilai 的回复:
http://bbs.dlut.edu.cn/bbsanc.php?path=%2Fgroups%2FGROUP_3%2FCrHack%2FCrack%2Fasm%2Fwinasm%2Fi32 百度一下不就有么。。。 在客户区可以有多个子窗口.所有的子窗口都位于客户区. 你可以通过按Ctrl+F4键来关闭子窗口,还可以通过按Ctrl+Tab键在子窗口之间来切 换. 你必须在你的框架窗口的消息循环中调用 TranslateMDISysAccel . 假如你希望Windows为你处理MDI相关的加速键,比如Ctrl+F4,Ctrl+Tab,那么这是必 须的.
多谢
梦之领域 2013-05-15
  • 打赏
  • 举报
回复
引用 1 楼 jimoguilai 的回复:
百度一下TranslateMDISysAccel,看看有资料么
提问之前百了,但是依然琢磨不透。希望版主能够帮忙释疑。 函数功能:该函数处理与指定MDI客户窗口相联系的多文档接口(MDI)子窗口的菜单命令的加速键响应。该函数转换WM_KEYUP和WM_KEYDOWN消息为WM_SYSCOMMAND消息,并把它的发送给相应MDI子窗口。
Chivalry 2013-05-15
  • 打赏
  • 举报
回复
百度一下TranslateMDISysAccel,看看有资料么
1. 开始0. 开始 4 WINDOWS环境 4 WINDOWS程序设计选项 9 编写第一个WINDOWS程序 13 2. Unicode简介 20 字符集简史 21 宽字符和C 27 宽字符和WINDOWS 30 3. 窗口和消息 36 自己的窗口 37 WINDOWS程序设计的难点 57 4. 输出文本 59 绘制和更新 60 GDI简介 63 滚动条 83 建立更好的滚动 92 5. 图形基础 101 GDI的结构 102 设备环境 106 画点和线 121 绘制填入区域 142 GDI映射模式 148 矩形、区域和剪裁 165 6. 盘 177 盘基础 178 按消息 181 字符消息 198 盘消息和字符集 202 插入符号(不是光标) 226 7. 鼠标 234 鼠标基础 235 客户区鼠标消息 237 非客户区鼠标消息 244 程序中的命中测试 247 拦截鼠标 267 鼠标滑轮 276 8. 计时器 285 计时器入门 286 计时器的使用:三种方法 288 计时器用于时钟 295 以计时器进行状态报告 308 9. 子窗口控件 311 按钮类别 313 控件与颜色 324 静态类别 333 滚动条类别 334 编辑类别 345 列表框类别 349 10. 菜单及其他资源 363 图标、光标、字符串和自订资源 364 菜单 381 加速 407 11. 对话框 420 模态对话框 420 非模态对话框 451 通用对话框 466 12. 剪贴板 493 剪贴板的简单使用 493 复杂的剪贴板用法 507 实作剪贴板浏览器 512 13. 使用打印机 517 打印入门 518 打印图形和文本 538 14. 位图和Bitblt 557 位图入门 558 位图尺寸 559 位块传输 563 GDI位图对象 575 15. 与设备无关的位图 631 DIB文件格式 632 显示和打印 658 DIB和DDB的结合 699 16. 调色盘管理器 717 使用调色盘 717 调色盘动画 743 调色盘和真实世界图像 761 DIB处理程序库 802 17. 文本和字体 877 简单的文本输出 877 字体的背景 881 逻辑字体 884 字体列举 921 段落格式 931 有趣的东西 955 18. Metafile 967 旧的metafile格式 968 增强型metafile 976 19. 多文档界面 1034 MDI概念 1034 MDI的范例程序 1036 20. 多任务和多线程 1054 多任务的各种模式 1054 WINDOWS的多线程处理 1058 线程同步 1080 事件信号 1081 线程区域储存空间(TLS) 1091 21. 动态链接库 1092 动态链接库的基本知识 1092 各式各样的DLL讨论 1111 22. 声音与音乐 1116 WINDOWS和多媒体 1117 波形声音 1126 MIDI和音乐 1183 23. 领略Internet 1237 Windows Sockets 1237 WININET和FTP 1252
作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的。本书首先对Win32 API函数做完整的概述;然后收录五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务;在附录部分,讲解如何在Visual Basic和Delphi中对其调用。 本书是从事Windows应用程序开发的软件工程师的必备参考手册。 Win32 API作为 Microsoft 32位平台(包括:Windows 9x,Windows NT3.1/4.0/5.0,WindowsCE)的应用程序编程接口,它是构筑所有32位Windows平台的基石,所有在Windows平台上运行的应用程序都可以调用这些函数。 从事Windows应用程序开发,离不开对Win32 API函数的调用。只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内很少有相关的新版资料出版。为了满足广大开发人员的迫切需求,我们经过认真收集、整理素材,组织编写了这本与各种Microsoft 32位平台最新版本同步的Win32 API参考手册。 全书收录了五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务。所有函数均附有功能说明、参数说明、返回值说明、备注以及引用说明。另外,在本书的第一章,我们对WiN32 API函数作了完整的概述;在附录部分,讲解了如何在Visual Basic和Delphi中对其调用。 由于篇幅较大,涉及技术内容广泛,加之时间仓促,书中难免存在不少错误或疏漏,希望广大读者给与批评指正。 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数。这些函数在程序员手中犹如"积木块"一样,可搭建出各种界面丰富、功能灵活的应用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。 随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用"所见即所得"的编程方式来开发具有精美用户界面和功能的应用程序。这些可视化编程环境操作简便、界面友好,比如:Visual C++,Delphi,Visual Basic等等。在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能。事实上,这些类库和控件都是构筑在Windows API的基础上的,但它们使用方便,加速了Windows应用程序的开发,所以受到程序员的普遍采用。有了这些类库和控件,程序员们便可以把主要精力放在整体功能的设计上,而不必过于关注具体细节。不过,这也导致了非常多的程序员在类库面前"固步自封",对下层API函数的强大功能一无所知。 实际上。程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数。虽然类库和控件使应用程序的开发容易得多,但它们只提供Microsoft Windows的一般功能,对于一些比较复杂和特殊的功能来说,单使用类库和控件是难以实现的,必须直接使用API函数来编写。API函数是构筑整个Windows框架的基石,只有充分理解和利用API函数,才能深入到Windows的内部,充分发挥各种32位平台的强大功能和灵活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。 Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。 使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。 在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。 标准Win32 API函数可以分为以下几类: 窗口管理 窗口通用控制 Shell特性 图形设备接口 系统服务 国际特性 网络服务 在下面各节中,我们分别介绍这7种类型的API函数。 窗口管理函数向应用程序提供了一些创建和管理用户界面的方法。你可以使用窗口管理函数创建和使用窗口来显示输出、提示用户进行输入以及
第二部分 Visual C++ 2010下MFC开发 第6章 计算机测控系统概述 267 6.1 Visual C++ 2010 SDI开发简介 267 6.1.1 建立应用程序基本框架 267 6.1.2 处理视图 267 6.1.3 处理文档 271 6.1.4 串行化处理 274 6.1.5 SDI应用程序编程思路 275 6.2 Visual C++ 2010 MDI开发简介 277 6.2.1 多文档接口 277 6.2.2 生成程序 278 6.2.3 程序类、文件和代码 279 6.2.4 自定义资源 281 6.3 Visual C++ 2010 View开发 282 6.3.1 生成源文件 283 6.3.2 初始化视图类数据成员 283 6.3.3 加入消息处理功能 285 6.3.4 设计程序资源 290 6.3.5 定制MiniDraw窗口 292 6.3.6 程序清单 293 6.4 Visual C++ 2010 EditView开发 298 6.4.1 生成MiniEdit程序 299 6.4.2 修改程序菜单 300 6.4.3 编辑加速 301 6.4.4 程序清单 303 6.5 Visual C++ 2010 FormView 6.5 开发 306 6.5.1 自定义FormDemo程序 307 6.5.2 程序清单 314 6.6 Visual C++ 2010 ScrollView开发 319 6.6.1 加入滚动功能 319 6.6.2 坐标换算 319 6.6.3 限制图形大小 322 6.6.4 改变鼠标光标 325 6.7 Visual C++ 2010 HtmlEditView 6.7 开发 328 6.8 Visual C++ 2010 HtmlView 6.8 开发 331 6.9 Visual C++ 2010 ListView开发 335 6.10 Visual C++ 2010 RichEditView 6.10 开发 335 6.11 VisualC++ 2010 TreeView 6.11 开发 336 6.12 Visual C++ 2010 Office 2007 6.12 风格文档视图开发框架 337 6.13 Visual C++ 2010 Visual Studio 6.13 2008风格文档视图开发框架 342 6.14 Visual C++ 2010 Windows资源 6.14 管理器风格文档视图开发框架 346 6.15 小结 350 第7章 Visual C++ 2010 MFC应用程序 第7章 界面与美化 351 7.1 应用程序窗口风格美化 351 7.1.1 借助ActiveSkin美化窗口 351 7.1.2 修改窗口外观 352 7.2 应用程序窗口图标与背景修改 359 7.2.1 修改窗口图标 359 7.2.2 修改背景 360 7.3 工具栏编程与美化 365 7.3.1 创建工具栏 365 7.3.2 在工具栏中添加、删除 7.3.2 按钮 366 7.3.3 从对话框创建工具栏 368 7.4 状态栏编程与美化 370 7.4.1 创建状态栏 370 7.4.2 在状态栏中插入进度条 370 7.5 鼠标光标编程 371 7.5.1 鼠标光标编程步骤 371 7.5.2 鼠标的消息处理机制 373 7.5.3 示例 374 7.6 创建启动界面 376 7.7 创建特效窗口启动应用程序 378 7.8 创建特效窗口关闭应用程序 378 7.9 小结 383
目录第1篇 开发基础篇 第1章 VisualC++6.0开发环境 1.1 VisualC++6.0概述 1.2 认识VisualC++集成开发环境 1.3 IDE菜单栏介绍 1.4 工具栏 1.5 输出窗口 1.6 资源编辑器 1.7 VisualC++学习常见问题 1.8 VisualC++学习方法简介 小结 第2章 利用集成开发环境生成程序 2.1 生成项目(project) 2.2 添加和编辑源文件 2.3 建立程序 2.4 运行程序 2.5 调试程序 2,6VisualC+4.生成的项目文件 2.7 编写控制台应用程序 小结 第3章 Windows程序运行原理 3.1 图形界面操作系统的王者——Windows 3.2 什么是多任务操作系统 3.3 Windows应用程序的组成 3.4 建立API的概念 3.4.1 API的发展 3.4.2 标准Win32API函数分类 3.5 一个用API编写的Windows程序 3.6 VisualC++应用程序开发框架:MFC 3.6.1 从API到MFC 3.6.2 MFC是一个编程框架 小结 第4章 开始使用MFC类库 4.1 MFC的起源和发展 4.2 MFC整体类库结构 4.3 常用MFC类简介 4.3.1 应用程序结构类 4.3.2 调试和异常类 4.3.3 文件服务类 4.3.4 图形处理类 4.3 ,5数据库类 4.3.6 Internet支持类 4.4 一个简单的MFC程序 4.5 文档/视图结构 4.5.1 文档类 4.5.2 视图类 4.5.3 使用文档/视图结构的好处 4.5.4 单文档(SDI)与多文档(MDI)应用程序 4.6 窗口类及其控件栏 4.6.1 子窗口类 4.6.2 主窗口类 4.6.3 工具栏 4.6.4 状态栏 4.7 MFC创建的完整应用程序实例 小结 第5章 菜单与加速 5.1 消息与事件 5.1.1 事件驱动机制 5.1.2 消息和消息映射 5.1.3 消息处理过程 5.2 菜单和加速的创建 5.2.1 菜单的创建 5.2.2 加速的创建 5.3 添加菜单所需的处理函数 5.3.1 添加普通菜单的处理函数 5.3.2 添加弹出式菜单的处理函数 5.4 加载加速 小结 第6章 AppWizand和ClassWizard 6.1 一个简单应用程序的创建 6.1.1 MFCAppWizard 6.1.2 ClassWizard 6.1.3 程序实例 6.2 程序调试 6.2.1 创建调试实例程序 6.2.2 调试器 小结 第7章 在WindOWS中绘制图像 7.1 绘图的基础知识 7.1.1 映射模式 7.1.2 设备上下文 7.2 图形设备接口(GDI) 7.2.1 设备环境类(CDC) 7.2.2 GDI对象 7.3 简单图形的绘制 7.3.1 屏幕绘图的主要函数 7.3.2 图形绘制基本原则 7.3.3 画笔 7.3.4 画刷 小结 第2篇 关控件篇(MFC) 第8章 常用界面控件 8.1 静态文本(staticText)控件 8.1.1 传统控件通知消息 8.1.2 静态控件的使用 8.1.3 CStatic类的主要成员函数 8.2 文本编辑(EditBox)控件 8.2.1 文本编辑控件的使用 8.2.2 CEdit类的主要成员函数 8.3 滚动条(ScroUBar)控件 8.3.1 滚动条控件的使用 8.3.2 CScrollBar类的主要成员函数 8.4 按钮控件 8.4.1 按钮控件的使用 8.4.2 CButton类的主要成员函数 8.5 列表框(List:Box)控件 8.5.1 列表框控件的使用 8.5.2 ClistBox类的主要成员函数 8.6 组合框(Combobox)控件 8.7 图片(Picture)控件 8.8 列表(ListCtrl)控件 8.8.1 Win32新型控件概述 8.8.2 列表控件的使用 8.8.3 ClistCtrl类的主要成员函数 8.9 树形(TreeCtrl)控件 8.9.1 树形控件的使用 8.9.2 CTreeCtrl类的主要成员函数 8.9.3 树形控件的通知消息 8.10 项卡(TabCtrl)控件 8.10.1 选项卡控件的使用 8.10.2 选项卡控件通知消息 8.10.3 选项卡控件的使用 8.11 用实例:进制转换计算器 8.11.1 进制转换计算器功能概述 8.11.2 实例具体实现步骤 小结 第9章 文本和字体类 9.1 基础知识介绍 9.2 CFont类 9.3 文本输出过程 9.4 字体和文本输出实例 9.5 根据数据绘制相应的柱状图 9.6 根据坐标绘制三角形 小结 第10章 对话框 10.1 对话框的创建 10.1.1 对话框的

1,662

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧