Win32 创建按钮控件

窗体创建成功了,下面来说各种按钮控件的创建.

按钮控件类名是BUTTON
分为下面三种形状

  1. 普通的按钮控件
  2. 单选按钮控件
  3. 复选按钮控件

在这里插入图片描述
按钮的样式有:
在这里插入图片描述
下面我们就来创建这三个按钮:

//定义要创建的控件ID号
#define IDC_BUTTON1			1001
#define IDC_RADIOBUTTON1	1002
#define IDC_RADIOBUTTON2	1003
#define IDC_CHECKBOX1		1004

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	HINSTANCE hInstance;
	HWND hBtn1, hRadio1, hCheck1;

	switch (uMsg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;

	case WM_CREATE:

		hInstance = ::GetModuleHandle(NULL);
		//1.创建普通的下压式按钮
		hBtn1 = ::CreateWindowEx(0,
			TEXT("BUTTON"), TEXT("下压按钮"),
			WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
			10, 10, 100, 30,
			hWnd, (HMENU)IDC_BUTTON1, hInstance, 0);

		//2.创建单选按钮1
		hRadio1 = ::CreateWindowEx(0, TEXT("BUTTON"), TEXT("单选按钮1"),
			WS_CHILD | WS_VISIBLE |WS_GROUP|BS_AUTORADIOBUTTON,
			10, 50, 100, 30,
			hWnd, (HMENU)IDC_RADIOBUTTON1, hInstance, 0);

		//3.创建单选按钮2
		hRadio2 = ::CreateWindowEx(0, TEXT("BUTTON"), TEXT("单选按钮2"),
			WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,
			10, 90, 100, 30,
			hWnd, (HMENU)IDC_RADIOBUTTON2, hInstance, 0);

		hCheck1 = ::CreateWindowEx(0, TEXT("BUTTON"), TEXT("复选按钮"),
			WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
			10, 130, 100, 30,
			hWnd, (HMENU)IDC_CHECKBOX1, hInstance, 0);

		break;

	}

	return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/2021051013062935.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxMTc4Njc5,size_16,color_FFFFFF,t_70)






按钮一般都只向父窗口发送单击,双击消息

我们在父窗口中来捕获按钮消息

按钮发送过来的WM_COMMAND消息参数说明:
wParam:	低字节是控件的ID号,LOWORD(wParam)
					高字节是控件发送的事件消息ID号;	HIWORD(wParam)
用这两个宏分别取出对应的ID值

lParam:	传过来的是控件句柄.HWND

```cpp
case WM_COMMAND:

		if (LOWORD(wParam) == IDC_BUTTON1)			
		{
			if (HIWORD(wParam) == BN_CLICKED)
			{
				MessageBox(hWnd, TEXT("按钮被鼠标单击"),
					TEXT("Info Message"), MB_OK);
			}
			
			
		}

		break;

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值