常用控件.pptVIP

  • 2
  • 0
  • 约1.05万字
  • 约 61页
  • 2017-02-24 发布于北京
  • 举报
简要回顾.ppt

简要回顾 创建一个基本应用程序框架 添加并使用对话框 使用向导创建对话框应用程序 使用无模式对话框 通用对话框和消息对话框 常用控件(一) 主要内容 使用ClassWizard进行消息映射 键盘和鼠标消息 映射计时器消息 其他窗口消息的映射 控件的创建方法 控件的消息及消息映射 控件的数据交换和数据校验 结合Ex_SDI使用ClassWizard ClassWizard概述 打开MFC的ClassWizard的方法: 选择“View”?“ClassWizard”菜单或直接使用Ctrl+W快捷键 在源代码文件的文档编辑窗口中,右击鼠标,选择ClassWizard命令 当ClassWizard打开后,就会弹出如图的MFC ClassWizard对话框 打开MFC的ClassWizard 消息和消息映射 消息分类 Windows应用程序中的消息主要有三种类型。 窗口消息(Windows message) 主要指由WM_开头的消息,一般由窗口类和视图类对象来处理 窗口消息往往带有参数,以标志处理消息的方法 控件的通知消息(Control notifications) 当控件的状态发生改变时,控件就会向其父窗口发送WM_COMMAND通知消息 应用程序框架处理控件消息的方法和窗口消息相同,但按钮的BN_CLICKED通知消息除外,它的处理方法与命令消息相同 消息和消息映射 命令消息(Command message) 主要包括由用户交互对象(菜单、工具条的按钮、快捷键等)发送的WM_COMMAND通知消息 命令消息的处理方式与其他两种消息不同,它能够被多种对象接收、处理,这些对象包括文档类、文档模板类、应用程序本身以及窗口和视类等 而窗口消息和控件的通知消息是由窗口对象接收并处理的,这里的窗口对象是指从CWnd中派生的类的对象 包括CFrameWnd、CMDIFrameWnd、CMDIChildWnd、CView、CDialog以及从这些类派生的对象等 ClassWizard映射消息的一般方法 示例:向CEx_SDIView中添加WM_LBUTTOMDOWN的消息映射,则可按下列步骤进行: (1) 按Ctrl+W快捷键打开MFC ClassWizard对话框 (2) 在Class name组合框中,将类名选定为CEx_SDIView (3) 在Object IDs列表框中选定CEx_SDIView,而在Messages列表中选定WM_LBUTTOMDOWN消息 (4) 双击Messages列表中的WM_LBUTTOMDOWN消息或单击[Add Function]按钮,都会在CEx_SDIView类中添加该消息的映射函数OnLButtonDown,同时在Member funcions列表中显示这一消息映射函数和被映射的消息 ClassWizard映射消息的一般方法 ClassWizard映射消息的一般方法 (5) 单击[Edit Code],转向文档窗口,定位到OnLButtonDown源代码处 (6) 添加下列代码: void CEx_SDIView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code // here and/or call default MessageBox (你好,我的Visual C++世界!, 问候, 0) ; CView::OnLButtonDown(nFlags, point); } (7) 运行程序,在窗口客户区左击,弹出一个消息对话框 ClassWizard映射消息的一般方法 查看CEx_SDIView程序代码,可以发现:ClassWizard为WM_LBUTTOMDOWN的消息映射作了以下三个方面内容的安排: 1) 在头文件Ex_SDIView.h中声明消息处理函数OnLButtonDown: protected: //{{AFX_MSG(CEx_SDIView) afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //}}AFX_MSG DECLARE_MESSAGE_MAP() ClassWizard映射消息的一般方法 2) 在Ex_SDIView.cpp源文件前面的消息映射入口处,添加映射宏: BEGIN_MESSAGE_MAP(CEx_SDIView, CView) // 消息映射开始 //{{AFX_MSG_MAP(CEx_SDIView) ON_WM_LBUTTONDOWN() //}}AFX_MSG_MAP … END_MESSAGE_M

文档评论(0)

1亿VIP精品文档

相关文档