Visual C++.NET编程讲座之六

发表于:2007-05-25来源:作者:点击数: 标签:编程C++.NET之六讲座visual
第六讲 对话框的功能实现 对话框就好比是一个容器,只有将一些控件添加在这个容器中,才能实现用户与对话框之间的交互。下面我们将前面的对话框设计成如图13所示的界面,其功能是用来让用户调整视图客户区的背景颜色,设置的效果可在下方的矩形框中预览。 图
第六讲 对话框的功能实现


  对话框就好比是一个容器,只有将一些控件添加在这个容器中,才能实现用户与对话框之间的交互。下面我们将前面的对话框设计成如图13所示的界面,其功能是用来让用户调整视图客户区的背景颜色,设置的效果可在下方的矩形框中预览。



图13 设计的"设置"对话框


  1. 界面实现的技巧


  在图13所示的对话框中所用到的控件有:组框

[/p]、静态文本[p align=center][/p] 、编辑框 [p align=center][/p]、旋转控件 [p align=center][/p]和图片控件 [p align=center>


  需要说明的是:


  ① "静态文本"、"组框"和"图片控件"都属于静态控件,一般不接收用户输入也没有事件映射,其中"组框"控件可以把一些控件人为地划分成一组,使界面更加清晰。"静态文本"和"图片控件"分别用来显示文本内容和图像资源(如图标、位图等)。


  ② "编辑框"是一个让用户从键盘输入和编辑文本的矩形窗口,用户通过它可以输入各种文本、数字或者口令,也可使用它来编辑和修改简单的文本内容。当编辑框被激活且具有输入焦点时,就会出现一个闪动的插入符,表明当前插入点的位置。


  ③ "旋转控件"(也称为上下控件)是一对箭头按钮,用户点击它们来增加或减小某个值。一个"旋转控件"通常附着于另一个控件,被附着的控件称为"伙伴窗口"。通常"旋转控件"和"编辑框"一起构成一个用于数字输入的"数字编辑框"。






  下面说明界面实现的技巧:


  (1) 几乎每一个控件都要设置自己的标题(Caption)内容。例如,图13中组框的"背景颜色",静态文本的"红色颜色分量(R)"等。单击要设置的控件,在属性窗口中修改其Caption属性内容。


  (2) 若要使"旋转控件"和"编辑框"组合一起,成为"伙伴"控件,必须使这两个控件的Tab键次序相连续,且"编辑框"的Tab键次序在前。在对话框中, Tab键可以按照一定次序依次将输入焦点从一个控件移动到另一个控件,这个次序称为"Tab键次序"。由于默认的控件Tab键次序与添加的控件次序相同,因此我们添加上述控件要先添加一个"编辑框",然后再添加一个"旋转控件"。另外,还需要在旋转控件的属性窗口中,将其Alignment(附着)属性设为"右对齐 ",将Auto Buddy和Set Buddy Integer属性均设为True。Alignment(附着)属性用来指定旋转控件在伙伴窗口的附着方式,它有三种方式:"取消附着"、"左对齐(Left)"和"右对齐"(Right)。Auto Buddy(自动伙伴)属性为True时,旋转控件自动前一个Tab键顺序的控件作为自己的伙伴控件。Set Buddy Integer(设置伙伴窗口中的整数值) 属性为True时,单击旋转控件的向上或向下按钮将改变伙伴窗口中的整数值。


  (3) 为了能预览显示效果,我们通过需要一个可以绘制图形的控件。通常使用"静态文本",但其Static Edge属性要设为True或Sunken属性设为True,这要看起来有下沉的立体感。当然我们也可以设置其他的外观。


  (4) 在"取消"按钮上方有一条水平线,这是用图片控件来设置的。方法是,添加一个图片控件,调整其位置和大小。在其属性窗口中,将其Type属性选择为"水平蚀刻"即可。


  (5) 对于控件的ID号,虽然我们可以使用默认的标识符,但为了容易辨别起见,我们对在程序中需要操作的控件重新指定其ID号。下表就是本例中需要指定的各个控件的ID号和Caption属性。


控 件 ID属性
"红色颜色分量"的编辑框 IDC_ EDIT_R
"红色颜色分量"的旋转控件 IDC_SPIN_R
"绿色颜色分量"的编辑框 IDC_ EDIT_G
"绿色颜色分量"的旋转控件 IDC_SPIN_G
"蓝色颜色分量"的编辑框 IDC_ EDIT_B
"蓝色颜色分量"的旋转控件 IDC_SPIN_B
静态文本 IDC_DRAW


  (6) 单击对话框编辑器工具栏上的测试按钮

,可以弹出对话框的实际效果,如图14所示。按ESC键或单击对话框中的"确定"、"取消"等按钮,退出对话框测试。需要说明的是,在Windows XP运行该程序,该对话框的实际效果比测试效果更佳。



图14 "设置"对话框测试的效果

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)