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