已阅读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年上海安全员C2核心考点速记速练300题(附答案)
- 鼻窦炎常见症状解析及护理方法培训
- 2025年德保县中小学教师招聘笔试备考试题及答案解析
- 2025年万年县中小学教师招聘笔试参考题库及答案解析
- 2025年来凤县中小学教师招聘笔试参考试题及答案解析
- 2025年连城县教师招聘考试参考题库及答案解析
- 上海市曹扬第二中学2025-2026学年生物高二上期末教学质量检测模拟试题含解析
- 山东省平邑县曾子学校2025年高一化学第一学期期中质量检测试题含解析
- 四川省成都市龙泉一中、新都一中等九校2025-2026学年高一上化学期中经典试题含解析
- 2025年证券从业资格考试(金融市场基础知识)模拟卷后附答案
- 职业规划大赛-生涯发展报告(模板)
- 绿色低碳建筑设计 课件 第3章 建筑空间设计
- 系统思维与系统决策系统动力学知到智慧树期末考试答案题库2025年中央财经大学
- T∕CWEA 29-2024 水利水电工程砌石坝施工规范
- 免疫课件内容
- 中建二局盘扣式悬挑式脚手架施工方案2023
- 塑胶模具保养合同协议
- 中国文化课程手工
- 《浙江省中药饮片炮制规范》 2015年版
- 7.大雁归来 课件
- 教师防性侵培训课件
评论
0/150
提交评论