窗口文档和视图

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并添加代码: • BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) • { …… • cs.style&=~WS_MAXIMIZEBOX;//按位取Leabharlann Baidu,使新窗口不带有“最
大化”按钮
上一页 下一页 返回
4.1 主窗口和文档窗口
• cs.cy=::GetSystemMetrics(SM_CYSCREEN)/3; //将窗口大小设置 为1/3 屏幕大小并居中
第4 章 窗口、文档和视图
• 4.1 主窗口和文档窗口 • 4.2 改变窗口的状态 • 4.3 文档串行化 • 4.4 不同视图的应用 • 4.5 串行化MDI(多文档)应用程序实例 • 4.6 章后实训
返回
4.1 主窗口和文档窗口
• 主窗口(或称主框架窗口)类CMainFrame 可以应用在SDI(单文档) 和MDI(多文档)结构中。在SDI 框架结构中,CMainFrame 派生于 类CFrameWnd,形成单个文档及其视图的边框。框架窗口即是应用 程序的主框架窗口,也是当前文档对应视图的边框。在MDI 框架结构 中,CMainFrame 派生于类CMDIFrameWnd,它是所有MDI 文档窗 口的容器,并与它们共享菜单条,MDI 框架窗口是出现在桌面中的顶 层窗口。每个应用程序只能有一个主框架窗口,主窗口的标题栏上往 往显示应用程序的名称。主窗口类的源文件名分别是MainFrm.h 和 MainFrm.cpp,其类名是CMainFrame。
上一页 下一页 返回
4.1 主窗口和文档窗口
• int cx; //新窗口的宽度 • int y; //新窗口的左上角Y 坐标 • int x; //新窗口的左上角X 坐标 • LONG style; //新窗口的风格 • LPCSTR lpszName; //新窗口的名称 • LPCSTR lpszClass; //新窗口的窗口类名 • DWORD dwExStyle; //新窗口的扩展参数 • } CREATESTRUCT;
• 文档窗口对于SDI 程序来说,它和主窗口是一致的,即主窗口就是文 档窗口,如图4.1所示。对于MDI 程序,文档窗口是主窗口的子窗口, 如图4.2 所示。
• 文档窗口一般都有相应的可见边框,它的客户区(除了窗口标题栏、 边框外的区域)是由相应的视图来构成的,可以说视图是文档窗口内 的子窗口。文档窗口时刻跟踪当前处于活动状态视图的变化,并将用 户或系统产生的命令消息传递给当前活动视图。而主窗口负责管理各 个用户交互对象(包括菜单、工具栏、状态栏以及加速键),并根据 用户操作,相应地创建或更新文档窗口及其视图。在MDI 应用程序中, MFC AppWizard 创建的文档子窗口类的源代码文件是ChildFrm.h 和ChildFrm.cpp,其类名是CChildFrame,它是从CMDIChildWnd 派生的。
• 如果应用程序中还有工具栏(CToolBar)、状态栏(CStatusBar), 那么在CMainFrame 类还含有表示工具栏和状态栏的成员变量 m_wndToolBar 和m_wndStatusBar,并在CMainFrame的 OnCreate 函数中进行初始化。
下一页 返回
4.1 主窗口和文档窗口
上一页 下一页 返回
4.1 主窗口和文档窗口
• [例4.1]创建一个“更改风格”的应用程序。 • 在SDI 程序中, 框架窗口默认的风格是
WS_OVERLAPPEDWINDOW 和FWS_ • ADDTOTITLE(如表4.1所示)的组合,更改其风格。 • (1)创建一个单文档的应用程序,名为:更改风格。 • (2)在主框架程序MainFrm.cpp 中找到PreCreateWindow 虚函数,
• CREATESTRUCT 结构,或是可以调用CWnd 类的成员函数 ModifyStyle 和ModifyStyleEx 来更改。
• 1. 窗口风格 • 窗口的风格,通常有两种形式:一般形式以WS_为前缀;扩展形式
以WS_EX_为前缀。这两种形式的窗口风格可在函数CWnd::Create (只能指定窗口的一般风格)或CWnd::CreateEx(可同时支持以上 两种风格),对于控件和对话框这样的窗口来说,它们的窗口风格可 直接通过其属性对话框来设置。常见的一般窗口风格如表4.1 所示。
上一页 下一页 返回
4.1 主窗口和文档窗口
• 窗口的风格决定了窗口的外观及功能,用户通过风格的设置增加或减 少窗口中所包含的功能,这些功能一般都是由系统内部定义的,不需 要用户去编程实现。窗口风格可以通过MFC AppWizard 来设置,也 可以在主窗口或文档窗口类的PreCreateWindow 函数中修改
• cs.cx=::GetSystemMetrics(SM_CYSCREEN)/3; //cx 和cy 表示长 和宽
• cs.y=((cs.cy*3)-cs.cy)/2; //放置的坐标点y • cs.x=((cs.cx*3)-cs.cx)/2; //放置的坐标点x • //调用基类的PreCreateWindow(cs)函数 • return CFrameWnd::PreCreateWindow(cs); •} • (3)编译运行,见出现的窗口缩小为屏幕1/3 大小,并且不含“最
上一页 下一页 返回
4.1 主窗口和文档窗口
• 2. 修改CREATESTRUCT 结构 • 在窗口创建之前,系统自动调用PreCreateWindow 虚函数。在MFC
AppWizard 创建SDI/MDI 应用程序结构时,MFC 已为主窗口或文档 窗口类自动重载了该虚函数。可以在此函数中通过修改其参数 CREATESTRUCT 结构来设置窗口的绝大多数风格。 • CREATESTRUCT 结构定义了创建窗口所用的初始参数,其定义如 下: • typedef struct tagCREATESTRUCT • { LPVOID lpCreateParams; //创建窗口的基本参数 • HANDLE hInstance; //拥有将创建窗口的模块实例句柄 • HMENU hMenu; //新窗口的菜单句柄 • HWND hwndParent; //新窗口的父窗口句柄 • int cy; //新窗口的高度
相关文档
最新文档