




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在Windows提供的“画图”程序中,点击颜色菜单下的“编辑颜色”菜单项,会出现如下图所示的对话框。这个对话框有点特别当您点击“规定自定义颜色”按钮时,它会自动伸长一截,如图所示:这个功能在我们自己编写的程序中,有时候也会用到的。比如说,我们经常通过对话框来查看/设定一些参数,但这些参数只有一部分是重要的或经常变化的,而另一部分则不那么重要或很少变化的。所以,通常情况下显示“简化版”的对话框用来设置最常用的参数,需要的时候再显示“完整版”的对话框用来设置全部的参数,是一个不错的选择。这样,可以在不损失对话框应有功能的前提下,使得程序界面更为干净整洁。同时,程序会显得更人性化、更智能,更体贴。 那么,如何来实现这种可伸缩的对话框呢?1 实现方法 当然,可能有多种方法来实现它。比如,两个对话框同时存在,但同时只显示一个的方法;比如,初始的对话框就是“简化版”的对话框,然后在需要显示“扩展元素”时,通过动态创建来添加控件的方法。显然,第一种方法会占用较多的资源,还需要解决数据的同步问题;第二种方法在编写代码时会比较繁琐和麻烦。 所以,大家通常采用“犹抱琵琶半遮面”的方法。即利用资源编辑器先将“完整版”的对话框做好,并把“简化版”的部分放在指定的区域(通常是左边或上边)。在需要显示“简化版”的时候,通过SetWindowPos函数来调整窗口(对话框是一种特殊的窗口)的大小,从而只显示指定的部分。2 简单实例 1)利用AppWizard建立一个名为Test的单文档工程,新建一个对话框,将OK、Cancel按钮移到左下方。插入一个新按钮(Caption:收缩,ID:IDC_BTN_DEMO),插入一个图像控件,将其拉成如下图所示的一条直线。在它的属性页中,将其ID改为:IDC_SEPARATOR,打开Style选项卡,选中Sunken,使其呈现为下凹状态。2)建立对话框对应的类CDlgShrink,并添加IDC_BTN_DEMO按钮的响应函数,代码如下:void CDlgShrink:OnBtnDemo() / TODO: Add your control notification handler code here CString str; /获得按钮文本 GetDlgItemText(IDC_BTN_DEMO,str); if(str=); else SetDlgItemText(IDC_BTN_DEMO,GetWindowRect(&rectSeparator); rectSmall.left=rectLarge.left; rectSmall.top=rectLarge.top; rectSmall.right=rectSeparator.right;/替换新值 rectSmall.bottom=rectLarge.bottom; if(str=GetWindowRect(&rectSeparator);rectTemp.right=rectSeparator.right;SetWindowPos(NULL,0,0,rectTemp.Width(),rectTemp.Height(), SWP_NOMOVE|SWP_NOZORDER);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE 2)将对话框中“”。 重新编译后,第一次显示的对话框如下图所示,符合我们的预期。当我们点击“扩展”按钮时,尽管标题会在“扩展”和“GetWindowRect(&rectSeparator);rectSmall.left=rectLarge.left;rectSmall.top=rectLarge.top;rectSmall.right=rectSeparator.right;rectSmall.bottom=rectLarge.bottom;SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(), SWP_NOMOVE|SWP_NOZORDER);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE3)改写OnBtnDemo函数中的代码:void CDlgShrink:OnBtnDemo()/ TODO: Add your control notification handler code hereCString str;/获得按钮文本GetDlgItemText(IDC_BTN_DEMO,str);if(str=);else SetDlgItemText(IDC_BTN_DEMO,收缩);if(str=收缩) /显示“简化版”对话框 SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(), SWP_NOMOVE|SWP_NOZORDER);else SetWindowPos(NULL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场营销学基础知识课件
- 工资薪金所得税说课课件
- 二零二五年度城市燃气监控系统安装合同
- 2025年厂房租赁及配套设施升级改造合同文本
- 2025版电梯装饰工程设计与施工一体化服务合同
- 二零二五年度房屋租赁担保及装修设计服务合同
- 农村社区农业资源整合合同
- 疟疾知识讲座课件
- 儿童教育培训机构师资配备合同
- 畜牧兽医标准化管理课件
- 胫骨髁间棘撕脱骨折课件
- 2023年新疆职业大学单招职业技能考试笔试题库及答案解析
- 《仪表工培训》课件
- 小学语文人教六年级下册(统编)第二单元-《爱丽丝漫游奇境》教学反思
- 化粪池 (有限空间)作业安全告知牌及警示标志
- T∕CGMA 033001-2018 压缩空气站能效分级指南
- 部编人教版五年级语文上册习作《漫画老师》优秀课件(共32张PPT)
- 辽宁省高中毕业生登记表含成绩表学年评语表体检表家庭情况调查表完整版高中档案文件
- 变形铝及铝合金圆铸锭国家标准
- PCN变更申请单
- 质量信得过班组获奖材料
评论
0/150
提交评论