教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

Visual C++第03章 MFC基本应用程序的建立(5)

来源:网络收集 时间:2025-09-14
导读: (8)字体hont(9)资源resource:包括图标hicon、光标hcursor、字符串hstring等 (10)GDI对象包括位图hbitmap、画刷hbrush、元文件hmetafile、调色板hpalette、 画笔hpen、区域hregion以及设备环境描述表device co

(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字,全部文档内容请下载后查看。喜欢就下载吧 ……

Visual C++第03章 MFC基本应用程序的建立(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/608642.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)