6-1.应用程序界面有那三种方式?
6-2.分别说明什么是SDI界面的程序和什么是MDI界面的程序? 答:用户使用应用程序时,如果该程序一次只能打开一个文档,那么这种程序就叫做SDI界面的程序,反之就叫做MDI界面的程序。
6-3 在使用VC++提供的应用程序向导MFC AppWizard生成程序框架时,有哪几个机会允许程序员选择应用程序窗口的样式?
答:一是在MFC AppWizard-Step 1时,选择SDI、MDI和基于对话框界面的窗口样式。二是在MFC AppWizard-Step 4中,可以确定窗口上诸如工具条、状态条、外观等一些选择。三是在MFC AppWizard-Step 4选择Advanced按钮后弹出的对话框中,选择窗口的样式。
6-4.使用框架窗口类PreCreateWindow()函数用坐标(200,200),(400,400)设计一个应用程序窗口。
在MainFrm.cpp下
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.cx = 200;
cs.cy = 200;
cs.x = 400;
cs.y = 400;
cs.style = WS_OVERLAPPED;
return TRUE;
}
6-5 如何用MFC提供的程序设计向导实现具有可拆分窗口的界面程序?
答:在MFC提供的程序设计向导MFC AppWizard的第四步中,即在MFC AppWizard-Step 4 of 6对话框中按下Advanced按钮,在随后打开的Advanced Options对话框中选择Window Styles选项卡,并在该选项卡中选择Use split window复选项。这样,由向导生成程序就会具有可拆分窗口的界面了。
6-6 文档类的成员函数UpdateAllViews的作用是什么?
答:通知文档所对应的所有窗口同时进行重绘。
6-7 为什么拆分窗口的显示更新必须要同步?
答:因为应用程序的所有拆分窗口现实的是同一个文档,所以当文档发生变化是,该文档所对应的窗口当然同时更新显示以正确地反映文档内容。
6-8 什么是无效显示区?
答:无效显示区一般定义为窗口用户区上的一个矩形区域,这个区域因覆盖所有因文档发生变化而需要重绘的部分。当程序需要重新绘制一个图形时,只要重新绘制该矩形内部的图形就可以了。
6-9 如何提高拆分窗口同步更新的效率?
答:原则上,想办法只绘制无效显示区。