Visual C++第03章 MFC基本应用程序的建立(5)
(8)字体hont(9)资源resource:包括图标hicon、光标hcursor、字符串hstring等 (10)GDI对象包括位图hbitmap、画刷hbrush、元文件hmetafile、调色板hpalette、
画笔hpen、区域hregion以及设备环境描述表device context等。 例如:HMENU hmenu;定义菜单句柄的对象。
而hbrush就是画刷句柄HBRUSH的对象。
Windows程序中并不是用物理地址来标识一个内存块、文件、任务或动态链接模块,相反,WindowsAPI给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来操作它们。因此,句柄是一个标识符,用来标识各种对象。 进程是装入内存中正在执行的应用程序,包括私有的虚拟地址空间、代码、数据及其它操作系统资源,如:文件管道、同步对象等,它包括多个线程。 ? 线程是操作系统分配CPU时间的基本实体,可以执行应用程序代码的任何部分,同一进程的所有线程共享同样的虚拟地址空间、全局变量和操作系统资源。 8、 几个常见的类
1)CView(是CCmdTarget的子类)用于让用户通过窗口来访问文档(显示文档数据的应用程序专用视图的基类)。
其子类:(1)CScrollView:具有滚动功能的视图的基类
(2)CFormView:其布局在对话资源中定义的滚动视图。
(3)CEditView:具有文本编辑、查找、替换和滚动功能的视图
2)CWnd(是CCmdTarget的子类)通用窗口类,用来提供Windows中所有通用特性,对话框和控件。
3)CFrameWnd(是CWnd的子类),SDI应用程序主框架窗口的基类
4)CDialog对话框类,建立模式无模式对话框模型,是子层次结构的根类
CFileDialog:提供打开或保存一个文件的标准对话框 CColorDialog:提供选择一种颜色的标准对话框 CFontDialog: 提供选择一种字体的标准对话框 CPrinDialog:提供打印一个文件的标准对话框
CFindReplaceDialog:提供删除查找并替换的标准对话框
5)CMDIFrameWnd多文档应用程序主框架窗口显示管理。 6)CMDICHildWnd多文档应用程序子窗口显示和管理。 7)CDocument应用程序专用文档的基类。 8)CMenu菜单类
9)窗口应用程序类:CWinApp类:每个程序有且只有一个应用程序对象,在运行程序中该对象与其他对象相互协调。该类封装了初始化、运行、终止应用程序代码。
10)文档/视图类:文档对象由文档模板对象创建,它管理应用程序的数据。视图对象表示一个窗口的用户区,显示文档数据并允许用户与之交互。文档/视图类包括以下子类或模板。
CDocTemplate:文档模板的基类,文档模板来协调文档、视图和框架窗口的创建。 CSingleDocTemplate:单文档界面(SDI)的文档模板。 CMultiDocTemplate:多文档界面(MDI)的文档模板 CDocument:应用程序专用文档的基类。
11)菜单类:CMenu类,该类是CObject类的子类,用于管理菜单。它是一个Windows HMenu的封装,提供了与窗口有关的菜单资源建立、修改、跟踪及删除功能的成员函数。
12)对话框类:CAboutDlg是每一个应用程序框架都有的,用于显示本程序的有关信息。它是从CDialog类派生的。
13)CObject类是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般的诊断、出错信息处理和文档序列化。
14)CCmdTarget类主要负责将系统事件(消息)和窗口事件(消息)发送给响应这些事件的对象,完成消息发送、等待和派遣(调度)等工作,实现应用程序的对象之间协调运行。
需要说明的是,对于基于对话框的应用程序来说,一般有CAboutDlg类、应用程序类和对话框类。 9、几种常见的消息映射宏
ON_COMMAND 指出由哪个函数处理指定的命令消息 ON_CONTROL 指出由哪个函数处理指定的控制消息
ON_MESSAGE 指出由哪个函数处理指定的用户自定义消息 ON_REGISTERED_MESSAGE指出由哪个函数处理指定的已登记用户定义消息 ON_UPDATE_COMMAND_UI指由哪个函数处理指定的用户接口更新命令消息 在CMyView.h中有DECLARE_MESSAGE_MAP()宏,它的作用是用来声明在该
类中将使用消息映射来向函数映射消息。
上面在“显示2行字”程序.cpp中,有下列宏: 在视图类的实现文件CMyView.cpp中,有BEGIN_MESSAGE_MAP()宏,该宏的
作用是在该类中开始消息映射。
接着下面的ON_COMMAND(ID_FILE_PRINT,CVioew::OnFilePrint)宏,该宏是具体实现所需要的消息映射。它有两个参数:第一个ID_FILE_PRINT,这是一个ID。第二个参数CView::OnFilePrint,这是为ID添加的消息处理函数名称。这样,通过ON_COMMAND宏就将菜单与相应的消息处理函数进行了连接,也就完成了该ID的消息映射。而END_MESSAGE_MAP()宏是结束消息映射。
注意:ON_COMMAND宏只用来处理由菜单、工具栏和加速键产生的消息,其他的消息处理可能由别的宏来处理,祥见上面列出的那些宏。 四、使用ClassWizard
ClassWizard称为类向导,能为一个项目添加一个类,进行消息和数据映射,创建OLE Automation(自动化)属性和方法以及进行ActiveX事件处理等。
View?ClassWizard便出现书156页图3.15所示的对话框:
1、Message Maps(消息映射):用来添加、删除和编辑处理消息的成员函数 2、Message Variables(成员变量):添加或删除与控件相关的成员变量(或称数据成员),以便与控件进行数据交换。
3、Automation(自动化):为支持Automation的类(如ActiveX控件类)添加属性和方法
4、Active Events(ActiveX事件):为ActiveX控件类添加触发事件的支持 5、Class Info(类信息):有关项目中类的其他信息 五、消息和消息映射
(1)窗口消息:主要是指WM___开头的消息(WM_COMMAND除外)一般由窗口类和视图类对象来处理,窗口消息往往带有参数,以标志处理消息的方法。 1)鼠标消息(见下图3.3所示)
WM_MOUSEMOVE鼠标移动时发送该消息
WM_LBUTTONDOWN鼠标左键被按下时发送该消息
WM_LBUTTONUP鼠标左键被释放时发送该消息
WM_LBUTTONDBLCLK鼠标左键被双击时发送该消息 WM_RBUTTONDOWN鼠标右键被按下时发送该消息 WM_RBUTTONUP鼠标右键被释放时发送该消息
WM_RBUTTONDBLCLK鼠标右键被双击时发送该消息 2)键盘消息
WM_CHAR 将一次单击键翻译成一个非系统字符时,发送该消息 WM_KEYDOWN按下一个非系统键盘时,发送该消息 WM_KEYUP释放一个非系统键时,发送该消息
图3.3 WM___开头的消息 3)窗口类消息
WM_CREATE生成一个窗口时发送该消息 WM_DESTROY销毁一个窗口时发送该消息 WM_CLOSE关闭一个窗口时发送该消息 WM_SIZE改变窗口大小时发送该消息 WM_MOVE移动一个窗口时发送该消息
WM_PAINT当窗口的大小发生变化、窗口内容发生变化、窗口间的层叠关系发 生变化或调用函数UpdateWindow或RedrawWindow时,系统都将产生WM_PAINT消息。表示要重新绘制窗口的内容。该消息处理函数的原型是:afx_msg void OnPaint(); WM_ACTIVATE激活窗口或关闭窗口
WM_ACTIVATEAPP正被激活的窗口属于不同的app WM_CANCELMODE取消系统模式 WM_CHIDACTIVATE移动的窗口 WM_ENABLE窗口被激活或关闭 WM_ENDSESSION会话结束 WM_ENTERIDLE静待用户操作
WM_ERASEBKGND背景 …… 此处隐藏:3945字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C