



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VC+ 5.0定制窗口的方法 VC+ 5.0是Microsoft新近推出的可视化C+集成开发环境,它在继承以前VC+的基础上增加了许多新的功能,用于支持Win32平台应用程序、服务程序和控件的开发。VC+ 5.0提供了强大、快捷的编程工具,其中最基本的是三个导航系统:AppWizard用于程序框架的生成,AppStudio用于资源的编辑,ClassWizard用于类的编辑和管理。其中,窗口、菜单等无需用户编写程序,而由系统自动生成。但在许多情况下,用户要设置自己希望的窗口(即定制窗口)。一、如何在多文档界面下去掉开始的子窗口在多文档界面下,自动生成一个新的子窗口,而一个实际的应用系统往往是由用户操作后再生成新的窗口。为了去掉开始的子窗口,可在应用程序文件分析命令行的语句CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);后加入:cmdInfo.m_nShellCommand=CCommandLineInfo:FileNothing;去掉子窗口后,就只剩下主框架窗口了。因为在多文档界面中,系统生成两个菜单:一个是用户的菜单,另一个是系统主框架菜单。通常用户工作在用户菜单。为了保证菜单界面不变,可修改主框架菜单资源,使其与用户菜单保持一致。二、修改窗口标题栏在缺省情况下,窗口标题栏中显示的文档名为文件名。若要在标题栏显示一个长字符串,而不修改文件名,则可将项目工作区转换到Resource View 面板,选择串表(String Table)资源,在String Table中双击IDR_MAINFRAME项,caption中显示一字符串xxnyy.,将第一个参数修改为用户自己希望见到的主窗口标题即可。三、修改主框架窗口、子窗口及其显示性质可通过覆盖CWnd的成员函数PreCreateWindow来修改主窗口和子窗口。PreCreateWindow函数在即将创建窗口前被调用,函数原型为:Virtual BOOL PreCreateWindow(CREATESTRUCT cs)。如果要覆盖PreCreateWindow函数,则在创建窗口前可以修改CREATESTRUCT结构以替换缺省参数。CREATESTRUCT结构存放窗口特征,如窗口坐标、风格等,还可以定义新窗口风格。若想修改主框架窗口,则可在MainFrm.cpp的下列成员函数中加入待修改的内容。例如:BOOL CMainFrame:PreCreateWindow(CREATESTRUCT&cs)/通过修改CREATESTRUCT 结构来修改窗口类或风格/定义新窗口的高度、宽度cs.cx=450;cs.cy=300;/定义新窗口风格为去掉主窗口名及最大化等按钮cs.style=WS_POPWINDO;return CFrameWnd:PreCreateWindow(cs);定制子窗口的操作与上述主窗口相同,可在ChildFrm.cpp中加入以下内容:BOOL CChildFrame:PreCreateWindow(CREATESTRUCT&cs)/通过修改CREATESTRUCT结构来修改窗口类或风格return CMDIChildWnd:PreCreateWindow(cs);要想修改视图窗口的显示性质,则可在视图文件xxView.cpp的下述成员函数中加入以下语句:BOOL xxView:PreCreateWindow(CREATESTRUCT&cs)/增加的语句cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,(HBRUSH):GetStockObject(WHITE_BRUSH),0);return CScrollView:PreCreateWindow(cs);其中,cs的参数pszClass用于存放Windows窗口类名称。要想注册Windows窗口类,则必须调用全局函数AfxRegisterWndClass。该函数原型为:LPCTSTR AFXAPI AfxRegisterWndClass(UINT nClassStyle,HCURSOR hCursor=0,HBRUSH hbrBackground=0,HICON hIcon=0)上述各参数用于定义风格,其含义分别为光标资源句柄、背景资源句柄、图标资源句柄。上述增加的语句的作用是:改变窗口大小时重画窗口、不显示光标图标、设置白色背景。四、窗口的滚动使用CScrollView代替CView类即可实现滚动窗口。此时,系统生成OnInitialUpdate( )成员函数:void CMyscrollView:OnInitialUpdate( )CScrollView:OnIntialUpdate( );Csize sizeTotal;sizeTotal.cx=sizeTotal.cy=100;SetScrollSizes(MM_TEXT,sizeTotal);其中,cx和cy分别为滚动窗口的水平、垂直分量,表明窗口的水平、垂直方向尺寸小于100像素单位时将出现水平方向滚动条和垂直方向滚动条。通过修改滚动尺寸,可改变出现滚动条的最小窗口。例如,若“sizeTotal.cx=600;sizeTotal.cy=800;”,则当窗口尺寸小于600800时,就会出现滚动条。五、窗口分割该功能可将窗口分割成多个可滚动的面板,面板之间的边界称为分割条,可用分割条来调整每个面板的相对大小。要想增加窗口分割功能,则必须修改主窗口类。首先,在主窗口类的头文件MainFrm.h中添加以下代码:CsplitterWnd m_SWnd;Virtual BOOL OnCreateClient(LPCREATESTRUCT cs,CCreateContext *pContext);再在MainFrm.cpp中添加成员函数OnCreateClient的定义:BOOL CMainFrame:OnCreateClient(LPCREATESTRUCT cs,CCreateContext *p Context)return m_SWnd.Create(this,2,2,CSize(20,20),pContext);新的CSplitterWnd类对象m_SWnd用于创建和管理分割窗口,该窗口中可以包含一个或多个面板。首次创建主窗口时,将调用成员函数OnCreateClient。在缺省情况下,该函数创建一个填充主框窗口客户区的视图窗口。覆盖该函数后,将调用CSplitterWnd的成员函数Create来创建分割窗口。其中,第一个参数用于指定分割的父窗口(主窗口);第二个参数指定垂直方向上的面板个数为2;第三个参数指定水平方向上的面板的个数;第四个参数用于设置每个面板的最小尺寸;第五个参数传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业医疗设备销售与推广协议
- 机关单位个人查摆问题及整改措施
- 催化剂对还原影响-洞察及研究
- 冬雨季码头防滑地面施工措施
- 行业趋势远程营养咨询服务的创新实践研究-洞察及研究
- 分布式医院药品采购及物流服务合同
- 校园的小花园校园作文10篇
- 农业资源循环利用协议签署书
- 学校服务学生群众不足及整改措施
- 生命末期照护伦理-洞察及研究
- MSA测量系统分析第四版
- 围手术期质量评价标准(手术室)
- 化学品安全技术说明(胶水)
- 吊篮操作工岗位风险告知卡
- 输血法律法规培训PPT
- 海姆立克急救(生命的拥抱)课件
- 越南语基础实践教程1第二版完整版ppt全套教学教程最全电子课件整本书ppt
- 标准化项目部驻地建设方案(五星级)
- T∕ACEF 027-2021 农药污染地块土壤异味物质识别技术指南
- 建筑结构:高层建筑结构选型
- 软件系统平台对接接口方案计划
评论
0/150
提交评论