第7章 框架窗口、文档和视图

第7章 框架窗口、文档和视图

ID:14398596

大小:45.00 KB

页数:16页

时间:2018-07-28

第7章 框架窗口、文档和视图_第1页
第7章 框架窗口、文档和视图_第2页
第7章 框架窗口、文档和视图_第3页
第7章 框架窗口、文档和视图_第4页
第7章 框架窗口、文档和视图_第5页
资源描述:

《第7章 框架窗口、文档和视图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章框架窗口、文档和视图第7章框架窗口、文档和视图7.1框架窗口7.2文档及其序列化7.3视图及视图类7.4文档视图结构7.1框架窗口7.1.1主窗口和文档窗口主窗口是应用程序直接放置在桌面上的那个窗口,每个应用程序只能有一个主窗口,主窗口的标题栏上往往显示应用程序的名称。文档窗口对于SDI程序来说,它和主窗口是一致的,即主窗口就是文档窗口;而对于MDI程序,文档窗口是主窗口的子窗口,如图。文档窗口一般都有相应的可见边框,它的客户区是由相应的视图来构成的,因此可以说视图是文档窗口内的子窗口。文档

2、窗口时刻跟踪当前处于活动状态的视图的变化,并将用户或系统产生的命令消息传递给当前活动视图。而主窗口负责管理各个用户交互对象并根据用户操作相应地创建或更新文档窗口及其视图。7.1框架窗口7.1.2窗口风格的设置??窗口风格窗口风格通常有一般和扩展两种形式。这两种形式的窗口风格可在函数CWnd::Create或CWnd::CreateEx参数中指定,CreateEx函数可同时支持以上两种风格,而CWnd::Create只能指定窗口的一般风格。需要说明的是,对于控件和对话框这样的窗口来说,它们的窗口风格

3、可直接通过其属性对话框来设置。需要说明的是,除了上述风格外,框架窗口还有以下三个自己的风格。它们都可以在PreCreateWindow重载函数中指定。uFWS_ADDTOTITLE该风格指定相关的信息如文档名添加到框架窗口标题的后面。uFWS_PREFIXTITLE该风格使得框架窗口标题中的文档名显示在应用程序名之前。uFWS_SNAPTOBARS该风格用来调整窗口的大小,使它刚好包含了框架窗口中的控制栏。7.1框架窗口??用MFCAppWizard设置7.1框架窗口??修改CREATESTRUC

4、T结构窗口创建之前,系统自动调用PreCreateWindow虚函数。在用MFCAppWizard创建SDI/MDI应用程序结构时,MFC已为主窗口或文档窗口类自动重载了该虚函数。可以在此函数中通过修改CREATESTRUCT结构来设置窗口的绝大多数风格。例如,在SDI程序中,框架窗口默认的风格是WS_OVERLAPPEDWINDOW和FWS_ADDTOTITLE的组合,更改风格代码:BOOLCMainFrame::PreCreateWindow(CREATESTRUCT&cs){//新窗口不带有

5、[最大化]按钮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;//调用基类的PreCreateWindow函数returnCFrameWnd::PreCreateWindow(cs);}对于MDI程序,

6、文档窗口的风格可用下列的代码更改:BOOLCChildFrame::PreCreateWindow(CREATESTRUCT&cs){//创建不含有[最大化]按钮的子窗口cs.style&=~WS_MAXIMIZEBOX;//调用基类的PreCreateWindow函数returnCMDIChildWnd::PreCreateWindow(cs);}7.1框架窗口??使用ModifyStyle和ModifyStyleExCWnd类中的成员函数ModifyStyle和ModifyStyleEx也可用

7、来更改窗口的风格,其中ModifyStyleEx还可更改窗口的扩展风格。这两个函数具有相同的参数,其含义如下。BOOLModifyXXXX(DWORDdwRemove,DWORDdwAdd,UINTnFlags=0);参数dwRemove用来指定需要删除的风格,dwAdd用来指定需要增加的风格,nFlags表示SetWindowPos的标志,0(默认)表示更改风格的同时不调用SetWindowPos函数。由于框架窗口在创建时不能直接设定其扩展风格,因此只能通过调用ModifyStyle函数来进行。

8、7.1框架窗口[例Ex_Vscroll]多文档(MDI)的子文档窗口增加垂直滚动条。(1)用MFCAppWizard创建一个多文档应用程序。(2)用ClassWizard为子文档窗口类CChildFrame添加OnCreateClient消息处理,并增加下列代码:BOOLCChildFrame::OnCreateClient(LPCREATESTRUCTlpcs,CCreateContext*pContext){ModifyStyle(0,WS_VSCROLL,0);returnC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。