- 7
- 0
- 约5.92千字
- 约 39页
- 2016-08-06 发布于重庆
- 举报
第2讲Windows消息机制
Visual C++程序设计 杨琦 计算机教学实验中心 西安交通大学 授 课 内 容 2.1 事件驱动与消息循环机制 2.2 标准的Windows消息 2.3 MFC基本类 2.4 MFC预定义宏 2.5 基本范例 2.1 事件驱动与消息循环机制 所有的Windows应用程序都是消息驱动的; 消息处理是windows应用程序的核心; 消息就是操作系统通知应用程序某件事情已经发生的一种方式; 当用户键入、移动鼠标或双击鼠标,或者用户改变窗口的大小,都将向适当的窗口发送消息 一个窗口可以向另一个窗口发送消息,并且大多数窗口通过向其他窗口发送一个稍有不向的消息来响应消息。 创建消息循环 MSG msg;//消息 …… while (GetMessage(&msg, //消息结构 NULL, //接收消息句柄 0, //最低消息 0)) //最高消息 { TranslateMessage(&msg); //翻译消息 DispatchMessage(&msg); //传输消息 } return msg.wParam; 消息队列 这几条语句组成主消息循环,是Windows应用程序的关键所在。Windows为每一个正在运行的应用程序保持一个消息队列。 当任一键或鼠标按钮被按下时,Windows将输入的事件翻译成一个消息,并将此消息放在该程序的消息队列中去。 应用程序从消息循环接受消息。Windows程序大量引用Windows函数,目前Windows函数有600多种,大大方便了用户。 MSG的结构在windows.h中定义: typedef struct tagMSG { HWND hwnd; //接收消息的窗口 WORD message; //消息号 WORD wParam; //消息的附加信息 //确切含义取决于消息号 LONG lParam; //消息的另一附加信息 //确切含义取决于消息号 DWORD time; //消息被传送的时间 POINT pt; //消息被发送时光标的位置 //POINT结构有X、Y两个域 }MSG; MSG的结构 MSG结构的域由GetMessage函数根据消息队列中的下一条消息来填充。 当消息队列中没有消息(或只有WM_PAINT和WM_TIMER消息)时,GetMessage在这期间可以将控制权交给其他应用程序。 只有当获取的消息是WM_QUIT 时,GetMessage 才返回FALSE,结束消息循环,从而终止应用程序。 消息的分类 根据消息来源的不同 标准Windows消息 WM_PAINT WM_QUIT WM_CHARD等 控制消息 BM表示按钮控件消息 CB表示组合框控件消息 DM表示默认下压式按钮控件消息 EM表示编辑控件消息 LB表示列表框控件消息 SBM表示滚动条控件消息 命令消息 ID_SHOW等 2.2 标准的Windows消息 1.WM_LBUTTONDOWN 2.WM_KEYDOWN 3.WM_CHAR 4.WM_CREATE 5.WM_CLOSE 6.WM_DESTROY 7.WM_QUIT 8.WM_PAINT 2.2 编制消息处理函数 所谓消息映射,就是让程序员指定要某个有消息处理能力的MFC类处理某个消息,通过消息映射,消息和它的处理函数才能对应起来。 当用户在窗口中单击鼠标左键时,Windows系统就会自动发送WM_LBUTTONDOWN消息给该窗口,如果程序需要对此消息有所反应的话,则程序中应包含类似的函数: 消息映射 在类头文件中也必须包含相应的函数原型说明: afx_msg void OnLButtonDown(UINT nFlags, CPoint point); 在代码文件中还需要消息映射宏,将OnLButtonDown函数与应用程序框架联系在一起: BEGIN_MESSAGE_MAP(CMyFirstView, CView) //{{AFX_MSG_MAP(CMyFirstView) ON_WM_LBUTTONDOWN() //}}AFX_MSG_MAP // Standard printin
您可能关注的文档
- 北京市各区2011年高三物理模拟试题分类汇编必修1相互作用直线运动.doc
- 基础会计综合练习参考答案.doc
- 基础会计综合练习题...doc
- 高考物理考点及考纲解读和复习题11(交变电流).doc
- 第1节二次型及其矩阵表示.ppt
- 基础会计综合练习题简答题.doc
- 北京市各区2011年高三物理模拟试题分类汇编必修2机械能.doc
- 北京市各区2011年高三物理模拟试题分类汇编选修3-1恒定电流.doc
- 第1章磁路1.ppt
- 北京市各区2011年高三物理模拟试题分类汇编选修3-1磁场(一).doc
- 2025广东广州市天河区拟招聘英语实习老师1人备考题库附答案.docx
- 2025广东广州市天河区城市管理第二保洁所招聘编外工作人员4人笔试备考试卷附答案解析.docx
- 2025广东广州市越秀区流花街道办事处招聘综合事务中心辅助人员1人笔试历年题库附答案解析.docx
- 2025广东广州市花都区新雅街清初级中学招聘临聘教师1人备考历年题库带答案解析.docx
- 2025广东广州市天河区城市管理第二保洁所招聘编外工作人员4人笔试备考试卷带答案解析.docx
- 江苏省盐城市东台市三仓镇区中学2026届八年级数学第一学期期末教学质量检测试题含解析.doc
- 2025广东广州市天河区城市管理第二保洁所招聘编外工作人员4人备考题库带答案解析.docx
- 江苏省盐城市亭湖区2026届数学八上期末考试试题含解析.doc
- 安徽省蚌埠市淮上区2026届数学八年级第一学期期末达标检测模拟试题含解析.doc
- 2025广东广湛城旅游轮有限公司招聘备考历年题库附答案解析.docx
最近下载
- 一次函数竞赛试题0.doc VIP
- 公司经营班子会议议事规则.pdf VIP
- 2025年全国中考历史真题分类汇编.docx VIP
- 医用控温仪产品技术要求参考版.pdf
- 2025年中考历史全国真题分类汇编:世界现代史.doc VIP
- 14G443:预制带肋底板混凝土叠合楼板 .docx VIP
- 高考调频考点(圆锥曲线)7、椭圆、双曲线的坐标版焦半径公式.pdf VIP
- 2023年山东水利职业学院单招综合素质考试试题及答案解析.docx VIP
- 2023年山东水利职业学院单招考试综合素质模拟试题及答案解析.docx VIP
- 福建省宁德市2024-2025学年八年级上学期期末考试历史试题.pdf VIP
原创力文档

文档评论(0)