
一按钮控件(Button)
二复选框checkbox
三单选按钮RadioButton
四CButton类的常用函数
MFC的CButton类对应着3个控件,按钮控件、复选框控件和单选框控件。
一按钮控件(Button)
属性
ID设置控件的ID。
Caption设置在控件上显示的字符串
visible是否可见
group将控件分组。
help id确定控件是否具有帮助ID
disabled是否可用
tab stop按tab键是否能够获得焦点
default button按钮具有黑色边框。用户在对话框中按Enter键,如窗口中没有其他命令要处理,该按钮的单击事件将要被执行。
owner draw自定义按钮。用户需要在OnDrawItem消息处理函数中绘制按钮外观。Icon、Bitmap用一个图标或位图代替文本
Multiline能够在按钮上显示多行文本
Notify按钮能够将单击或双击事件通知父窗口,一般按钮按钮能够处理的消息是click 消息,是否选择这个属性后就可以写单击或双击消息了?通过实验好像是否选择都可以执行BN_CLICKED和BN_DOUBLECLICKED消息。
flat按钮不具有3D外观。
client edge使控件边框下凹
static edge控件边缘为实边框
modal frame控件呈现3D效果
transparent控件透明。控件下方的窗口不会被控件掩盖。
accept files是否接受文件拖动。用户在对话框中拖动一个文件,控件将收到WM_DROPFILES消息。
Right aligned text文本右对齐
Right-to-left reading order文本从右到左显示。主要用于阿拉伯文等中东地区的语言习惯。
二复选框checkbox
Auto是单击时,自动判断和设置是否选中,如果不选择就要通过GetCheck()和SetCheck ()来判断和设置。
left text表示文本在复选框的左边。
tri-stat3此单击状态
push-like按钮样式
可以为每一个复选框绑定一个布尔变量,当变量为TRUE时表示选中,为false时表示没有选中。
三单选按钮RadioButton
单选按钮如何成组(一组单选按钮中仅能够一个被选中)。将第一个单选按钮勾选Group 选项,其后的都不选择这项,直到遇到下一个(按照tab顺序——Ctrl+D查tab顺序)具有Group属性的控件为止。选中了Group属性的单选按钮和其后没有选择Group属性的单选按钮一组,直到遇到另一个具有Group属性的控件。
如果选择了auto属性,在单击单选按钮的时候,系统就会自动设置一组按钮内哪个选中。
在程序中一般要判断某时哪个单选按钮被选中。方式一:依次使用GetCheck()来判断。另一种常用的方法是定义一个int变量(一组单选按钮中定义了Group属性的那个单选按钮关联一个int变量),为每个单选按钮实现单击事件,在单击事件中改变int的值。通过判断int的值就知道是哪个单选按钮被选中了(-1表示没有按钮被选中,0表示第一个,依次类推)。这里有一个技巧,单选按钮的ID其实也是数值类型,通过ID_Radio1+int-1就可以知道是哪个单选按钮的ID值被选中了。减1是因为0表示第一个单选按钮。
四CButton类的常用函数
GetState
UINT GetState()const;
功能:返回按钮的状态
BST_CHECKED按钮被选中
BST_UNCHECKED按钮未被选中
BST_FOCUS按钮获得焦点
BST_INDETERMINATE按钮处于灰色状态
BST_PUSHED按钮处于高亮状态
SetState
void SetState(BOOL bHighlight);
功能:TRUE表示高亮显示按钮,FALSE正常显示。
GetCheck
int GetCheck()const;
功能:用于单选按钮或复选框判断选中状态。
返回值:0表示没有选中1表示选中2表示按钮状态不确定(按钮具有BS_3STATE或BS_AUTO3STATE属性才有2这种状态。)
对应的函数是void SetCheck(int nCheck);
