上下控件是Windows中最常用的控件之一。它只不过是一对箭头,用户可单击它来增加或减少控件的设定值。通常,紧靠着上下控件有一个编辑控件,称为伙伴编辑控件或伙伴控件,用于显示用户输出的值。上下控件在应用
程序中用途非常广泛,但目前在纵多出版
资料中很少提及其实现方法,使软件开发者甚感迷惑。其实,在Visual
C++6.0中可以很轻松的实现这一控件。笔者通过试验摸索,对上下控件的实现作一简要介绍,以飨纵软件开发朋友。
1. 在Visual
C++6.0中创建一个对话框文档应用
程序(这一步应该不用详细介绍了吧!)。
2.
打开资源编辑框,将其中的对话框缩放至适当大小。再在其中的适当地方放一个编辑框(即控件框中的EDIT控件),然后在它的右边放一对上下箭头(即控件框中的SPIN控件)。
注意:这一步中的编辑框和上下箭头必须按上面的先后顺序放置,否则,二者可能勾连不上!
3.
按以下指示的顺序依次打开上下箭头的属性框。在对话框上单击上下箭头控件(SPIN)=>单击右键=>选择Properties=>选择Styles属性页。此时弹出一个相应的对话框。
下面介绍与之有关的一些选项:
Alignment的选项的功能:
Right:使上下控件放置在伙伴控件的右边;
Left:使上下控件放置在伙伴控件的左边;
Unattached:使上下控件放置与伙伴控件互不勾连;
Orientation的选项的功能:
Vertical:设置控件为水平方向;
Horizontal:设置控件为垂直方向;
AutoBuddy :设置上下箭头(SPIN)指针,使之指向伙伴编辑框;
Wrap:使控件值在达到最小值之后回绕到最大值,反之亦然;
Set buddy integer:设置伙伴控件的值为整形;
Arrow keys:使用户可以使用键盘的上下箭头来改变控件的值;
No thousand:没有以千为单位分隔的逗号;
Hot track:设置热键跟踪;
至于General和Extend
Styles两属性页读者可以根据实际情况选择一些自己所需要的项目,在此笔者不再赘述!
4.
到目前为止,做出来的控件还没完全达到目的,此时上下箭头的功能与我们实际需要的正好相反:上箭头将使控件的值减小,而下箭头将使控件的值增大;(有兴趣的读者可以试一试)。
5.
要使做好的控件达到我们真正需要的目的,其实比较简单:只需在对话框初始化函数(笔者试验的
程序中为BOOL
CHuobanDlg::OnInitDialog())中加上下面的一句话即可;
m_LSpin.SetRange(-50,50);
下面对之略加说明:m_Lspin是与上下箭头对应的
CspinButtonCtrl类的对象。SetRange(int x,int
y)是设置控件变化的上下界为x,y;
好了,到现在为止,整个伙伴控件就已经完全做好了!