▲获得控件对象
GetDlgItem(...) //以指定的ID获取控件指针
▲获取/设置控件文本
GetWindowText(...) //获取指定控件的文本
SetWindowText(...) //设置指定控件的文本
//
GetDlgItemText(...) //获取指定控件的文本
SetDlgItemText(...) //设置指定控件的文本
//
GetDlgItemInt(...) //将指定控件上的文本按整形数字类型获取
SetDlgItemInt(...) //将整形数字设置为指定控件上的文本
//
SendMessage(...WM_GETTEXT...) //通过消息获取指定控件的文本
SendMessage(...WM_SETTEXT...) //通过消息设置指定控件的文本
//
SendDlgItemMessage(...WM_GETTEXT...) //通过消息获取指定控件的文本
SendDlgItemMessage(...WM_SETTEXT...) //通过消息设置指定控件的文本
▲Tab Stop属性
在同一父窗口上的每一个控件,都有一个序号与之关联(Tab Order,以1累加),当点击键盘上Tab键时,输入焦点会按Tab Order的顺序在具有Tab Stop属性的控件上停留。
查看/设置控件的Tab顺序可在编排(Layout)菜单(仅在可视化编辑对话框资源时出现)中选择Tab Order项。
▲Group属性
在同一父窗口上的控件,具有Group属性的控件与(按Tab Order顺序)下一个具有Group属性控件之的控件成为一组。特殊情况下,当所有控件具有Group属性时,控件各自为一组,当所有控件无Group属性时,所有控件成为一组。
对单选框分组可以设置单选范围。
▲关联变量
在类向导的成员变量属性页中,选择不同的类(CMyDiag),就可在控件列表中出现相应类所包含的控件(以ID区分),双击控件(IDC_EDIT1)出现关联变量对话框,设置变量名(m_num1),属性(Value),类型(int),范围(0~100)并添加后,此变量就和对应的控件相关联起来。
上面的设置会在相应类中添加如下代码:
1.在MyDiag.h的CMyDiag定义中
//{{AFX_DATA(CMyDiag) //注释宏
enum { IDD = IDD_DIALOG1 };
int m_num1; //添加的变量
//}}AFX_DATA //注释宏
2.在MyDiag.cpp的CMyDiag(...)构造函数中
//{{AFX_DATA_INIT(CMyDiag) //注释宏
m_num1 = 0; //变量初始化
//}}AFX_DATA_INIT //注释宏
3.在MyDiag.cpp的CMyDiag::DoDataExchange(...)成员函数中
//{{AFX_DATA_MAP(CMyDiag) //注释宏
DDX_Text(pDX, IDC_EDIT1, m_num1); //变量与控件交换数据
DDV_MinMaxInt(pDX, m_num1, 0, 100); //校验数据
//}}AFX_DATA_MAP //注释宏
DoDataExchange()用于交换和校验数据,由UpdateData()函数调用。关联变量后,若控件上的数据类型或范围不符时会由系统给出提示。
可以在类向导中将变量属性设为Control,则添加的就是控件变量,该控件变量与指定控件关联,用以指代该控件。
只能对具有Group属性的单选框关联变量,当关联整形变量时,该变量初始为-1表示该单选框分组中没有选中任何结果,当该变量值为0,1...时,分别表示关联该变量的单选框被选中,改组中按Tab Order顺序的其他单选框被选中。
▲修改控件的窗口过程函数
LRESULT CALLBACK MyProc(...) //自定义的窗口过程函数
{...}
SetWindowLog(...GWL_WNDPROC,MyProc...) //将指定控件的窗口过程修改为自定义的窗口过程函数
▲获得兄弟控件
GetNextWindow(...) //(按z序)获得当前控件的上一个/下一个控件(窗口)
GetWindow(...) //(按z序)按指定的关系获得与当前控件相关的控件(窗口)
GetNextDlgTabItem(...) //(按Tab序)获得当前控件的上一个/下一个控件(窗口)
▲修改控件的外观
在控件绘制之前,父窗口会收到WM_CTLCOLOR的消息,其中指定了控件的类型以及控件的DC,可对其DC进行操作以改变控件的外观