为Windows编写一个非常简单的原生应用程序,可以使用C++和Windows API来实现。以下是一个基本的示例,展示了如何创建一个简单的窗口应用程序。
以下是一个简单的Windows GUI应用程序的示例代码:
#include <windows.h>
// 窗口过程函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
const char* CLASS_NAME = "SampleWindowClass";
// 注册窗口类
WNDCLASS wc = {};
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;
RegisterClass(&wc);
// 创建窗口
HWND hwnd = CreateWindowEx(
0, // 扩展样式
CLASS_NAME, // 窗口类名
"Simple Window", // 窗口标题
WS_OVERLAPPEDWINDOW, // 窗口样式
CW_USEDEFAULT, CW_USEDEFAULT, // 窗口位置
CW_USEDEFAULT, CW_USEDEFAULT, // 窗口大小
NULL, // 父窗口
NULL, // 菜单
hInstance, // 实例句柄
NULL // 附加参数
);
if (hwnd == NULL) {
return 0;
}
ShowWindow(hwnd, nCmdShow);
// 消息循环
MSG msg = {};
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
CreateWindowEx
函数的返回值是否为NULL,并确保窗口类已正确注册。WndProc
函数正确处理所有必要的消息,特别是WM_DESTROY
消息。通过这种方式,你可以创建一个简单的Windows原生应用程序,无需依赖.NET框架或其他安装过程。
领取专属 10元无门槛券
手把手带您无忧上云