控件的创建方式
通常有两种方式:
1 CreateWindow创建,用Windows内置类名
2 用在对话框资源上面的托拉拽方式创建
创建方法有不同但是使用的时候是一样的
操作控件的相关函数
函数名 | 效果 |
---|---|
GetDlgItem | 获得控件的句柄 |
SendMessage | 发送消息 |
MoveWindow | 移动控件 |
GetWindowText | 获得控件内容 |
GetParent | 获得控件父窗口句柄 |
ShowWindow | 显示和隐藏窗口 |
控件的使用场景
1 控件被User操作的时候,会发消息
2 利用代码控制控件来做事,一般先用GetDlgItem先获得控件的句柄,然后根据控件ID得到子控件,再通过SendMessage发送消息控制控件
控件分类-都是Windows自己已经实现的
1 标准控件,可以直接使用的控件,数量少,功能简单
2 通用控件,需要做一些初始化操作,控件数量多,功能强大
标准控件
按钮,复选框,单选框,静态文本框,图片,复合框,编辑框
按钮包含按钮,复选框,单选框
复选框
其实就是CheckBox控件,单机可以选中
单选框
Radio Button控件,在一组之中职能选中一个
序号
在对话框中的控件会Windows会自动给控件编上序号来方便处理。按Ctrl+D可以查看
单选框根据每个控件的序号来将其分组处理,从第一个序号到最后一个序号,每一个单选框都有一个分组的属性,这个属性通过TRUE属性来分组,默认是false,如果第一个为True那么就会往后面遍历,一直到后面出现一个序号的分组属性也是true就把第一个为true和最后一个为true的前面一个之间的分为一组
控件的操作
操作流程:
首先获得控件句柄,然后利用SendMessage函数来发送控件消息进行处理。
实现复选框和单选框创建的时候默认选择默认值
利用代码控制控件来做事,一般先用GetDlgItem先获得控件的句柄,然后根据控件ID得到子控件,再通过SendMessage发送消息控制控件
实现在初始化的时候默认选中一些复选框或单选框
HWND hcheck1= GetDlgItem(hWnd,IDC_CHECK1);
SendMessage(hcheck1,BM_SETCHECK,BST_CHECKED,0);
Windows自己的控件有自己的消息处理函数,只需要发送对应的消息就好
也可以用SendDigItemMessage函数直接送给对话框消息
还可以Button_SetCheck函数直接来设置单选框
获取选择框的状态---也就是选择了什么
case IDC_BUTTON3:
{
for (UINT i = IDC_CHECK1; i <= IDC_CHECK3; i++)
{
HWND hTest = GetDlgItem(hWnd, i);//得到控件句柄
UINT Checked = SendMessage(hTest, BM_GETCHECK, 0, 0);//发送控件消息
if (Checked == BST_CHECKED)//如果返回值是被选中
{
WCHAR A[20] = { 0 };
GetWindowText(hTest, A, 20);//得到控件的内容
MessageBox(hWnd, A, L"获得复选框的内容为", MB_OK);
}
}
break;
}