用C语言做的图形化界面代码
时间: 2024-05-03 13:19:47 浏览: 110
在 C 语言中,通常使用图形库来创建图形化界面。一些常见的图形库包括:
1. Windows API:这是一个用于 Windows 操作系统的图形库,可以使用 C 语言编写 GUI 应用程序。
2. GTK+:这是一个跨平台的图形库,可以在 Linux、Windows 和 macOS 上使用。它提供了一组常用的 GUI 控件,并且使用 C 语言编写。
3. Qt:这也是一个跨平台的图形库,可以在多个操作系统上使用。它使用 C++ 语言编写,但也可以使用 C 语言接口。
下面是一个使用 Windows API 创建一个简单窗口的示例代码:
```c
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
// 注册窗口类
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 = "WindowClass";
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&wc)) {
MessageBox(NULL, "窗口注册失败!", "错误", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
// 创建窗口
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
"WindowClass",
"窗口标题",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);
if (hwnd == NULL) {
MessageBox(NULL, "窗口创建失败!", "错误", 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;
}
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;
}
```
该代码将创建一个简单的窗口,并在窗口中显示一个标题。可以使用 Windows API 提供的其他函数来添加更多的 GUI 元素。
阅读全文