MFCWindows应用程序设计第6章Windows应用程序界面的设计SDI和MDI界面6.1SDI界面窗口的样式6.2拆分窗口的同步更新及更新效率6.3创建带滚动条的窗口6.4第6章Windows应用程序界面的设计6.1SDI和MDI界面SDI:单文档界面程序,一次只能打开一个文档。MDI:多文档界面程序。6.2SDI界面的样式6.2.1在MFCAppWizard中确定窗口样式6.2SDI界面的样式6.2.2在PreCreateWindow中修改窗口的样式通过MFC向导创建的应用程序,创建窗口前一刻调用PreCreateWindow函数,并且用户可以重写此虚函数,达到修改程序窗口样式的目的。PreCreateWindow函数的原型为:virtualBOOLPreCreateWindow(CREATESTRUCT&cs);6.2.2在PreCreateWindow中修改窗口的样式typedefstructtagCREATESTRUCT{LPVOIDlpCreateParams;\\指向将被用于创建窗口的数据的指针。HANDLEhInstance;\\标识了拥有新窗口的模块的模块实例的句柄HMENUhMenu;\\标识了要被用于新窗口的菜单HWNDhwndParent;\\标识了拥有新窗口的窗口。如果新窗口是一个顶层窗口,这个参数可以为NULL。intcy;intcx;inty;intx;\\指定了新窗口的高、宽、y轴坐标、x轴坐标LONGstyle;\\指定了新窗口的风格。LPCSTRlpszName;\\指定了新窗口的名字。LPCSTRlpszClass;\\指定了新窗口的Windows类名DWORDdwExStyle;\\指定了新窗口的扩展风格。}CREATESTRUCT;6.2.2在PreCreateWindow中修改窗口的样式style指定了新窗口的风格。可取WS_BORDER、WS_CHILD、WS_CAPTION、WS_CLIPCHILDREN、WS_CLIPSIBLINGS、WS_CLIPSIBLINGS、WS_DISABLED、WS_DLGFRAME、WS_GROUP、WS_HSCROLL、WS_MAXIMIZE、WS_MAXIMIZEBOX、WS_MINIMIZE、WS_MINIMIZEBOX、WS_OVERLAPPED、WS_OVERLAPPEDWINDOW、WS_POPUP、WS_POPUPWINDOW、WS_SYSMENU、WS_TABSTOP、WS_THICKFRAME、WS_VISIBLE、WS_VSCROLL6.2SDI界面的样式练习:P1366-46.2SDI界面的样式6.2.3可拆分小窗口的SDI界面6.3拆分窗口的同步更新及更新效率6.3.1拆分窗口的同步更新CDocument::UpdateAllViewsvoidUpdateAllViews(CView*pSender,LPARAMlHint=0L,CObject*pHint=NULL);6.3拆分窗口的同步更新及更新效率6.3.2提高拆分窗口更新效率的方法1、理解视图类的成员函数---InvalidateRect2、理解文档类的成员函数---UpdateAllView6.4创建带有滚动条的窗口自学作业: