网站大量收购闲置独家精品文档,联系QQ:2885784924

第6章 章框架窗口、和视图课件.ppt

  1. 1、本文档共126页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 章框架窗口、和视图课件

第6 章框架窗口、文档和视图 尽管窗口、文档和视图是MFC的基础,但可能也是最不易理解的部分,因为其概 念性比传统编程所需的Windows API函数更强一些 6.1 框架窗口 框架窗口可分为两类:一类是应用程序主窗口,另一类是文档窗口。 6.1.1 主窗口和文档窗口 主框架窗口是应用程序直接放置在桌面(DeskTop)上的那个窗口,每个应用程序 只能有一个主框架窗口,主框架窗口的标题栏上往往显示应用程序的名称。 6.1.1 主窗口和文档窗口 文档窗口对于单文档应用程序来说,它和主框架窗口是一致的,即主框架窗口就 是文档窗口;而对于多文档应用程序,文档窗口是主框架窗口的子窗口,如图 6.1所示。 6.1.2 窗口风格的设置 窗口风格既可以通过MFC AppWizard来设置,也可以在主窗口或文档窗口类的 PreCreateWindow函数中修改CREATESTRUCT结构,或是可以调用CWnd类的 成员函数ModifyStyle和ModifyStyleEx来更改。 1. 窗口风格 窗口风格通常有一般(以WS_为前缀)和扩展(以WS_EX_为前缀)两种形式。这两 种形式的窗口风格可在函数CWnd::Create或CWnd::CreateEx参数中指定,其中 CreateEx函数可同时支持以上两种风格,而CWnd::Create只能指定窗口的一般 风格。需要说明的是,对于控件和对话框这样的窗口来说,它们的窗口风格可直 接通过其属性对话框来设置。常见的一般窗口风格如表6.1所示。 1. 窗口风格 6.1.2 窗口风格的设置 2. 用MFC AppWizard设置 MFC AppWizard 有一个[高级]按扭(在创建单文档或多文档应用程序过程的第四 步中),允许用户指定有关SDI和MDI框架窗口的属性,图6.2表示了Advanced Options对话框的Window Styles页面,其中的选项含义见表6.2。但在该对话框 中,用户只能设定少数几种窗口风格。 6.1.2 窗口风格的设置 3. 修改CREATESTRUCT结构 当窗口创建之前,系统自动调用PreCreateWindow虚函数。在用MFC AppWizard创建文档 应用程序结构时,MFC已为主窗口或文档窗口类自动重载了该虚函数。用户可以在此函数中 通过修改CREATESTRUCT结构来设置窗口的绝大多数风格。 例如,在单文档应用程序中,框架窗口默认的风格是WS_OVERLAPPEDWINDOW和FWS_ ADDTOTITLE的组合,更改其风格可如下列的代码: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT cs) { // 新窗口不带有[最大化]按钮 cs.style = ~WS_MAXIMIZEBOX; // 将窗口的大小设为1/3屏幕并居中 cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3; cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3; cs.y = ((cs.cy * 3) - cs.cy) / 2; cs.x = ((cs.cx * 3) - cs.cx) / 2; return CFrameWnd::PreCreateWindow(cs); } 代码中,前面有“::”作用域符号的函数是指全局函数,一般都是一些API函数。“cs.style = ~WS_MAXIMIZEBOX;”中的“~”是按位取“反”运算符,它将WS_MAXIMIZEBOX的值按位取 反后,再和cs.style值按位“与”,其结果是将cs.style值中的WS_MAXIMIZEBOX标志位清零。 6.1.2 窗口风格的设置 4. 使用ModifyStyle和ModifyStyleEx CWnd类中的成员函数ModifyStyle和ModifyStyleEx也可用来更改窗口的风格,其中Modify StyleEx还可更改窗口的扩展风格。这两个函数具有相同的参数,其含义如下。 BOOL ModifyXXXX( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 ); 其中,参数dwRemove用来指定需要删除的风格,dwAdd用来指定需要增加的风格,nFlags 表示SetWindowPos的标志,0(默认)表示更改风格的同时不调用SetWindowPos函数。 由

文档评论(0)

精华文库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7111022151000002

1亿VIP精品文档

相关文档