可伸缩对话框的实现方法

可伸缩对话框的实现方法

ID:40798002

大小:139.50 KB

页数:10页

时间:2019-08-07

可伸缩对话框的实现方法_第1页
可伸缩对话框的实现方法_第2页
可伸缩对话框的实现方法_第3页
可伸缩对话框的实现方法_第4页
可伸缩对话框的实现方法_第5页
资源描述:

《可伸缩对话框的实现方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在Windows提供的“画图”程序中,点击颜色菜单下的“编辑颜色”菜单项,会出现如下图所示的对话框。这个对话框有点特别——当您点击“规定自定义颜色”按钮时,它会自动伸长一截,如图所示:这个功能在我们自己编写的程序中,有时候也会用到的。比如说,我们经常通过对话框来查看/设定一些参数,但这些参数只有一部分是重要的或经常变化的,而另一部分则不那么重要或很少变化的。所以,通常情况下显示“简化版”的对话框用来设置最常用的参数,需要的时候再显示“完整版”的对话框用来设置全部的参数,是一个不错的选择。这样,可以在不损失对话框应有功能的前提

2、下,使得程序界面更为干净整洁。同时,程序会显得更人性化、更智能,更体贴。  那么,如何来实现这种可伸缩的对话框呢?1实现方法   当然,可能有多种方法来实现它。比如,两个对话框同时存在,但同时只显示一个的方法;比如,初始的对话框就是“简化版”的对话框,然后在需要显示“扩展元素”时,通过动态创建来添加控件的方法。显然,第一种方法会占用较多的资源,还需要解决数据的同步问题;第二种方法在编写代码时会比较繁琐和麻烦。   所以,大家通常采用“犹抱琵琶半遮面”的方法。即利用资源编辑器先将“完整版”的对话框做好,并把“简化版”的部分放在

3、指定的区域(通常是左边或上边)。在需要显示“简化版”的时候,通过SetWindowPos函数来调整窗口(对话框是一种特殊的窗口)的大小,从而只显示指定的部分。2简单实例   1)利用AppWizard建立一个名为Test的单文档工程,新建一个对话框,将OK、Cancel按钮移到左下方。插入一个新按钮(Caption:<<收缩,ID:IDC_BTN_DEMO),插入一个图像控件,将其拉成如下图所示的一条直线。在它的属性页中,将其ID改为:IDC_SEPARATOR,打开Style选项卡,选中Sunken,使其呈现为下凹状态。2

4、)建立对话框对应的类CDlgShrink,并添加IDC_BTN_DEMO按钮的响应函数,代码如下:voidCDlgShrink::OnBtnDemo(){        //TODO:Addyourcontrolnotificationhandlercodehere        CStringstr;         //获得按钮文本        GetDlgItemText(IDC_BTN_DEMO,str);         if(str=="<<收缩")        {                 //设置按

5、钮文本                  SetDlgItemText(IDC_BTN_DEMO,"扩展>>");        }        else        {                  SetDlgItemText(IDC_BTN_DEMO,"<<收缩");        }         //两个静态变量,存储对话框尺寸信息        staticCRectrectLarge;        staticCRectrectSmall;         //如果还没有填充数值        if

6、(rectLarge.IsRectNull())        {                 CRectrectSeparator;                  //获取完整对话框位置参数                  GetWindowRect(&rectLarge);                  //获取图像控件的位置参数(有用的是right)                  GetDlgItem(IDC_SEPARATOR)->GetWindowRect(&rectSeparator);    

7、              rectSmall.left=rectLarge.left;                  rectSmall.top=rectLarge.top;                  rectSmall.right=rectSeparator.right;//替换新值                  rectSmall.bottom=rectLarge.bottom;        }        if(str=="<<收缩")        {                 //显示“

8、简化版”对话框                  SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),                           SWP_NOMOVE

9、SWP_NOZORDER);        }

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。