通过c语言创建程序窗口的代码
时间: 2023-08-15 11:04:53 浏览: 104
natpl,c语言创建窗口程序源码,c语言
在C语言中创建程序窗口需要使用操作系统提供的API函数。以下是Windows操作系统下使用Win32 API函数创建一个程序窗口的示例代码:
```c
#include <windows.h>
//窗口过程函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
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)
{
//定义变量
HWND hwnd;
MSG Msg;
WNDCLASSEX wc;
//注册窗口类
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MyWindowClass";
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&wc))
{
MessageBox(NULL, "窗口注册失败!", "Error", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
//创建窗口
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
"MyWindowClass",
"程序窗口",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);
if (hwnd == NULL)
{
MessageBox(NULL, "窗口创建失败!", "Error", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
//消息循环
while (GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
```
这段代码使用了Win32 API提供的函数来注册窗口类、创建窗口、处理消息等。可以根据自己的需求修改窗口标题、大小、样式等属性。
阅读全文