windows程序设计设置重启按钮具体代码
时间: 2023-12-19 20:04:37 浏览: 26
以下是一个简单的代码示例,演示如何创建一个重启按钮:
```c++
#include <Windows.h>
// 按钮控件 ID
#define RESTART_BUTTON 101
// 窗口过程
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_COMMAND:
if (LOWORD(wParam) == RESTART_BUTTON)
{
// 重启计算机
ExitWindowsEx(EWX_REBOOT, SHTDN_REASON_MAJOR_OPERATINGSYSTEM | SHTDN_REASON_FLAG_PLANNED);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
// WinMain 入口函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 注册窗口类
WNDCLASS wc = { 0 };
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszClassName = "MyWndClass";
RegisterClass(&wc);
// 创建窗口
HWND hwnd = CreateWindow("MyWndClass", "My Window", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, NULL, NULL, hInstance, NULL);
// 创建重启按钮
CreateWindow("BUTTON", "Restart", WS_VISIBLE | WS_CHILD, 150, 120, 100, 30, hwnd, (HMENU)RESTART_BUTTON, hInstance, NULL);
// 显示窗口
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
```
该代码使用 Windows API 创建了一个窗口,并在窗口中创建了一个名为 "Restart" 的按钮。当用户单击该按钮时,程序将使用 `ExitWindowsEx` 函数重启计算机。需要注意的是,该函数需要管理员权限才能执行。