- 4
- 0
- 约5.96千字
- 约 9页
- 2018-07-10 发布于湖北
- 举报
模态对话框和非模态对话框单线程,程序运行时,若运行了模态对话框,则线程会进入等待状态(运行模态对话框时会使线程进入一个while循环),直到模态对话框结束,在运行模态对话框期间,程序不能运行其他的对话框,运行非模态对话框时则可以。单文档菜单消息的搜索流程是:视图类-文档类-文档模板类-框架窗口类-应用程序类。如果找不到,则将相应的界面元素变灰。1 消息的分类MFC 在Win32 的消息结构MSG 的基础上将消息分为三类:窗口消息、命令消息和控件消息。消息的区别在于:消息类别标识和消息的附加参数不同。消息映射:ON_COMMAND();(命令消息)ON_MESSAGE()(自定义消息);ON_WM_...(预定义消息);1.1 窗口消息1.1.1 基础知识相关操作:与窗口相关的操作,例如,创建窗口、绘制窗口、移动窗口、改变窗口尺寸、鼠标在窗口区域内的各种操作等。凡是从基类CWnd派生的类都能够处理这类消息。形式:WM_XXX,其中WM为窗口消息类型前缀,XXX表示具体的窗口消息种类。1.1.2 窗口消息产生途径①窗口之间交互产生;②系统产生的窗口消息;③程序根据需要发送窗口消息。1.2 命令消息1.2.1 基础知识相关操作:处理用户的某个请求或者执行用户的某个命令。凡是从基类CCmdTarget 派生的类都能够处理这类消息。形式:WM_COMMAND主要字段:message(消息类别)WM_COMMANDwParam(附加参数)低16位为命令ID、高16位为0。lParam(附加参数)0L由于 wParam 的高、低16位表示不同的含义,需要分解。wParam来判断命令消息,也需要组装一个wParam用于生成命令消息。系统提供的宏可以帮助完成这些工作。1.2.2 参数分解HIGHWORD(wParam); 获取高16位,为0表示M_COMMAND类别的消息为命令消息。LOWWORD(wParam); 获取低16位,为命令的资源ID。例如:菜单命令消息中: 菜单项的资源ID;工具栏按钮消息中:工具栏按钮对应的资源ID;加速键消息中:加速键对应的资源ID。1.2.3 参数组合使用宏MAKEWPARAM,例如:生成一条打开文件的命令消息,打开文件的菜单项的资源ID为ID_FILE_OPEN,消息命令为:(WM_COMMAND, MAKEWPARAM(ID_FILE_OPEN, 0), 0L)1.2.4 命令消息产生途径①选择菜单项;②单击工具栏按钮;③按加速键;④程序根据需要发送的命令消息。1.3 控件消息1.3.1 相关操作此类消息与控件窗口中的某个事件相关,例如:文本框控件窗口内的内容发生改变、列表框控件中某个选项被选择、按钮控件被单击、滑杆条的游标被移动等,都会发出相应的控件事件消息。1.3.2 形式由于控件是近年来软件开发中最为活跃的,控件的种类不断增加,随之控件消息的类别也迅速增加,原来的控件消息格式越来越不能满足控件消息的描述,因此,必须寻求新的控件消息描述方法。由于历史的原因,控件消息的新旧描述形式必须并存才能兼容所有的控件消息。1.3.3 控件消息产生途径①由控件的各类事件发出;②程序根据需要模拟控件事件发送通知消息。2 自定义消息2.1 自定义消息的步骤①添加自定义消息,例如:#define WM_MESSAGENAME (WM_USER+100)(Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息)②在.H头文件中,添加消息响应函数,该函数有规定的格式:LONG Function_Name(WPARAM w, LPARAM l);对于添加的自定义消息WM_MESSAGENAME的函数处理形式如下:LONG OnMessageName(WPARAM w, LPARAM l);③添加消息响应宏在响应该消息的类的消息响应块中,加入以下语句。ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)④在.cpp源文件中,添加消息响应函数体。其代码如下:LONG CMyClass::OnMessageName(WPARA w,LPARAM l){}(类向导ClassWizard不允许增加用户自定义消息,所以开发人员必须手工添加。添加后,类向导ClassWizard就可以像处理其他消息一样处理自定义消息了。)如果用户需要整个系统唯一的消息,则可以调用SDK函数RegisterWindowMessage()并使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。⑤给窗口发送消息SendMessage(WM_MESSAGENAME,0L,0L);2.2 SendMessage和PostMessageSendMessage
您可能关注的文档
最近下载
- 煤的介绍课件.pptx VIP
- 部编人教版9年级下册《道德与法治》全册课件.pptx
- 官方通用文本离婚协议书 2026年.docx VIP
- 结构力学仿真软件:SAP2000:SAP2000中的材料属性设置.pdf VIP
- 2025WHO脑膜炎指南解读.pptx
- 老年人胆囊结石诊断和治疗专家共识(2026版).pptx VIP
- 普通党员2025年度组织生活会围绕“五个方面”查摆问题50条和整改措施供参考.docx VIP
- 如何开一家废品回收站?.docx VIP
- 2026年河南水利与环境职业学院单招职业适应性测试题库含答案详解.docx VIP
- 小学常用单词分类汇总国标手写斜体英语字帖(含例句).pdf VIP
原创力文档

文档评论(0)