WindowsAPI 高频窗口控件函数: 操作控件 创建 取句柄 取标题 取文本 置标题 置文本

Win32API提供了一系列的函数来操作控件

高频常用控件函数:

类型 说明
GetDlgItem 根据控件ID,取控件句柄
GetDlgItemText 根据控件ID,取控件文本
GetDlgItemInt 根据控件ID,取控件的数字 (相当于取文本 然后转为数字)
GetDlgCtrlID 根据 句柄  取控件ID
SetDlgItemText 根据控件ID,设置控件文本
SetDlgItemInt 根据控件ID,设置控件数字(相当于把数字转为文本.再设置上去)
SendDlgItemMessage 向控件发送消息

高频常用窗口函数

类型 说明
EnableWindow 启用或禁用鼠标和键盘输入到指定的窗口或控件
FindWindow 检索顶级窗口的句柄,该窗口的类名和窗口名称与指定的字符串匹配。
SetWindowText 更改指定窗口标题栏的文本(如果有)
GetWindowText 获取指定窗口标题栏的文本(如果有)
GetWindowRect 检索指定窗口的边界矩形的尺寸
GetClientRect 检索指定窗口的客户区矩形的尺寸
SetFocus 置焦点
MoveWindow 更改指定窗口的位置和尺寸
GetActiveWindow 检索连接到调用线程的消息队列的活动窗口的窗口句柄。

高频常用控件函数例子(下面是 窗口过程中的一个分支):

case WM_CREATE:
{
	LPCREATESTRUCT pcs = (LPCREATESTRUCT)LParam;

	//按钮的创建
	HWND h1 = CreateWindow(L"button", L"这是一个按钮", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 300, 330, 100, 25, hwnd, (HMENU)10001, pcs->hInstance, NULL);
	HWND h2 = CreateWindow(L"edit", L"11111111", WS_CHILD | WS_BORDER | WS_VISIBLE | ES_MULTILINE, 10, 10, 400, 150, hwnd, (HMENU)10002, pcs->hInstance, NULL);
	HWND h3 = CreateWindow(L"edit", L"222222222", WS_CHILD | WS_BORDER | WS_VISIBLE | ES_MULTILINE, 10, 170, 400, 150, hwnd, (HMENU)10003, pcs->hInstance, NULL);


	//GetDlgItem 用法   根据控件ID,取控件句柄
	HWND hBut = GetDlgItem(hwnd, 10001); //第一个参数是所在窗口的句柄

	//GetDlgItemText 用法  根据控件ID,取控件文本
	TCHAR buf[64] = {0};
	GetDlgItemText(hwnd, 10001, buf, 64);
	OutputDebugString(buf);//调试输出

	//GetDlgItemInt 用法   根据控件ID,取控件的数字 (相当于取文本 然后转为数字)
	BOOL 转换是否成功 = false;
	int v1 = GetDlgItemInt(hwnd, 10001, &转换是否成功, true);

	//GetDlgCtrlID 用法    根据 句柄  取控件ID
	UINT id = GetDlgCtrlID(h2); 

	//SetDlgItemText 用法  根据控件ID,设置控件文本
	SetDlgItemText(hwnd, 10003, L"这是SetDlgItemText设置上去的文本");

	//SetDlgItemInt 根据控件ID,设置控件数字(相当于把数字转为文本.再设置上去)
	SetDlgItemInt(hwnd, 10001, 666, true);  //true代表有符号   一般情况写 true

	//SendDlgItemMessage  向控件发送消息
	SendDlgItemMessage(
		hwnd, //控件父窗口
		10002,//控件id
		WM_SETTEXT,//要发送的消息
		0,//额外的消息特定信息
		(LPARAM)L"这是SendDlgItemMessage发送的消息"//额外的消息特定信息
		);

	break;
}