请用易语言写一个程序,要求点击按钮后获取上一个激活窗口的句柄到编辑框里
时间: 2024-05-03 21:21:34 浏览: 11
首先,我们需要创建一个窗口,并在窗口中添加一个按钮和一个编辑框。
1. 创建窗口
窗口的创建可以使用EasyX库中的API函数CreateWindow来实现。在窗口的创建过程中,需要设置窗口的标题、位置、大小等属性。
2. 添加按钮和编辑框
在窗口创建成功后,我们可以通过EasyX库中的API函数CreateButton和CreateEdit来添加按钮和编辑框。这些函数需要传入按钮或编辑框的位置、大小、样式等参数。
3. 获取上一个激活窗口的句柄
当按钮被点击时,我们需要获取上一个激活窗口的句柄,并将其显示在编辑框中。这可以通过EasyX库中的API函数GetForegroundWindow来实现。该函数可以返回当前激活窗口的句柄。
下面是完整的示例代码:
```e
// 引入EasyX库
#include <EasyX.h>
// 窗口标题
const wchar_t* WINDOW_TITLE = L"获取上一个激活窗口的句柄";
// 窗口大小
const int WINDOW_WIDTH = 400;
const int WINDOW_HEIGHT = 300;
// 按钮大小
const int BUTTON_WIDTH = 80;
const int BUTTON_HEIGHT = 30;
// 编辑框大小
const int EDIT_WIDTH = 300;
const int EDIT_HEIGHT = 30;
// 按钮ID
const int BUTTON_ID = 1;
// 编辑框ID
const int EDIT_ID = 2;
// 窗口句柄
HWND g_hWnd = NULL;
// 按钮回调函数
void OnButtonClick()
{
// 获取上一个激活窗口的句柄
HWND hActiveWnd = GetForegroundWindow();
// 将句柄转换为字符串
wchar_t buffer[64] = { 0 };
swprintf_s(buffer, L"0x%x", hActiveWnd);
// 设置编辑框内容
SetWindowText(GetDlgItem(g_hWnd, EDIT_ID), buffer);
}
int main()
{
// 创建窗口
g_hWnd = CreateWindow(
WINDOW_TITLE, // 标题
WS_OVERLAPPEDWINDOW, // 样式
CW_USEDEFAULT, // x坐标
CW_USEDEFAULT, // y坐标
WINDOW_WIDTH, // 宽度
WINDOW_HEIGHT, // 高度
NULL, // 父窗口句柄
NULL, // 菜单句柄
NULL, // 实例句柄
NULL // 参数
);
// 创建按钮
CreateButton(
BUTTON_ID, // ID
L"获取句柄", // 标题
g_hWnd, // 父窗口句柄
(WINDOW_WIDTH - BUTTON_WIDTH) / 2, // x坐标
(WINDOW_HEIGHT - BUTTON_HEIGHT - EDIT_HEIGHT) / 2, // y坐标
BUTTON_WIDTH, // 宽度
BUTTON_HEIGHT // 高度
);
// 创建编辑框
CreateEdit(
EDIT_ID, // ID
L"", // 初始内容
g_hWnd, // 父窗口句柄
(WINDOW_WIDTH - EDIT_WIDTH) / 2, // x坐标
(WINDOW_HEIGHT + BUTTON_HEIGHT - EDIT_HEIGHT) / 2, // y坐标
EDIT_WIDTH, // 宽度
EDIT_HEIGHT // 高度
);
// 注册按钮回调函数
SetEventProc(OnButtonClick, BUTTON_ID, EVT_COMMAND);
// 显示窗口
ShowWindow(g_hWnd, SW_SHOW);
// 消息循环
while (true)
{
if (PeekMessage(&g_msg, NULL, 0, 0, PM_REMOVE))
{
if (g_msg.message == WM_QUIT)
{
break;
}
TranslateMessage(&g_msg);
DispatchMessage(&g_msg);
}
}
// 销毁窗口
DestroyWindow(g_hWnd);
return 0;
}
```