- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
窗口的实现教学文稿.ppt
* VC++软件开发 广州大学华软软件学院 * VC++软件开发 广州大学华软软件学院 窗口的组成和实现 主要内容 窗口应用程序的组成 窗口程序的工作模式 手动创建MFC窗口 模板创建窗口 一、窗口应用程序的组成要素 应用程序:操作系统中,真正具有操作功能的实例(具体对象),是操作系统资源分配的对象。 窗口:用户的图形化操作界面。 1.1 应用程序 句柄:应用程序实例的编号,无符号长整数。 资源:程序相关的静态数据,固化在exe文件中。 1.1.1 句柄 在MFC中,CwinApp是应用程序的基类。每一个MFC程序主体都是一个从它继承而来的子类(一般类名就是应用程序的名称)。每一个正在执行中的应用程序就是该类的一个对象。 Windows系统为方便控制操作这些实体,为每一个执行中的实体对象分配一个规定长度的、唯一的编号。 在Win32的类库中创建了这种编号(Handle of Instance)数据类型HINSTANCE。 1.2 窗口 1.2.1 窗口的结构 主菜单 工作区 标题栏 操作按钮 大部分的内容都是窗口相关的属性 1.2.2 控件 在窗口中的每一个控件实质是控件类的一个对象。通过对象的操作实现窗口具体的功能。 MFC中所有的控件都是从窗口类中派生出来。每个控件都可以看成是一个小窗口,并根据需要重写父类的方法或添加自己的成员。 用户还可以自己新建控件,只要开发人员将控件向Windows注册就可以在自己的程序中使用别人的控件。 1.2.3 窗口句柄 每个在Windows系统中呈现的窗口都会有一个句柄。Win32类库中窗口句柄的数据类型为HWND。 当应用程序需要创建一个窗口时,需要向系统表明窗口类型。由系统实例化一个对象,并将对象的句柄返回给应用程序。 在MFC中,CWnd类有一个成员变量m_hWnd,该变量的内容就是窗口的句柄。 1.2.4 窗口对象编号 窗口对象除了系统分配的句柄外,还有一个标识码ID。ID是由程序员定义的名称,句柄是系统分配的标识。 句柄 标识ID 产生时间 程序运行,创建对象 程序代码设计 使用者 系统 开发人员 唯一性 不可以重复 可以共用 作用 系统内部操作 识别子窗口 访问性 由m_hWnd记录 需要调用函数获取 二、 窗口程序的工作模式 应用程序通常都处于休眠状态,直到消息发送给窗口,窗口才会按照消息的指示工作,工作完毕后又恢复休眠状态。 消息由三部分32位无符号长整数组成,包括: 消息代码,WM_PAINT 第一参数 第二参数 2.1 消息传递机制 在MFC中,凡是从CCmdTarget派生的类都可以接受消息 2.2 消息映射表 接受消息的对象如果根据消息分类调用指定的函数呢? 然后,在类定义中添加映射表的内容。 BEGIN_MESSAGE_MAP(接收消息类名,父类名) ON_WM_CREATE//响应内容 END_MESSAGE_MAP() 首先,每个需要相应消息的类中,必须声明一个消息映射表。 DECLARE_MESSAGE_MAP() 三、手动创建一个MFC窗口 详细操作步骤见教材第五章。P32-P50 继承创建自己的窗体框架类和应用程序类 重写应用程序类的初始化函数InitInstance 在初始化函数中构造窗体类对象 利用窗体类的Create方法创建窗口 利用窗体类的ShowWindow方法显示窗口 * VC++软件开发 广州大学华软软件学院
文档评论(0)