Windows编程-控件的使用-按钮

控件的创建方式

通常有两种方式:

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;
}