C++ Windows 应用程序:创建带按钮的界面
以下是使用 C++ 和 Windows API 创建一个带按钮的 Windows 应用程序的示例代码: ```cpp #include <windows.h> // 窗口过程函数 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // 按钮 ID #define ID_BUTTON 1 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("ButtonApp"); HWND hwnd; MSG msg; WNDCLASS wndclass; // 注册窗口类 wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; if (!RegisterClass(&wndclass)) { MessageBox(NULL, TEXT("This program requires Windows NT!"), szAppName, MB_ICONERROR); return 0; } // 创建窗口 hwnd = CreateWindow(szAppName, TEXT("Button Application"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); // 显示窗口 ShowWindow(hwnd, iCmdShow); UpdateWindow(hwnd); // 消息循环 while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } // 窗口过程函数 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: // 创建按钮 CreateWindow(TEXT("BUTTON"), TEXT("Click Me!"), WS_CHILD | WS_VISIBLE, 100, 100, 100, 30, hwnd, (HMENU)ID_BUTTON, ((LPCREATESTRUCT)lParam)->hInstance, NULL); return 0; case WM_COMMAND: switch (LOWORD(wParam)) { case ID_BUTTON: MessageBox(hwnd, TEXT("Button clicked!"), TEXT("Message"), MB_OK); return 0; } break; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); } ``` ### 代码说明: 1. **WinMain 函数**:程序的入口点,负责注册窗口类、创建窗口、显示窗口并进入消息循环。 2. **WndProc 函数**:窗口过程函数,处理窗口消息。 - `WM_CREATE` 消息:在窗口创建时创建一个按钮。 - `WM_COMMAND` 消息:处理按钮点击事件,当按钮被点击时弹出一个消息框。 - `WM_DESTROY` 消息:当窗口关闭时,发送退出消息。 ### 编译和运行: 将上述代码保存为 `.cpp` 文件,使用 Visual Studio 或其他 C++ 编译器进行编译,然后运行生成的可执行文件,即可看到一个带有按钮的窗口。当点击按钮时,会弹出一个消息框。 ######[AI问答 | 924点数解答 | 2026-03-15 20:07:08]
- Java JFrame 实现多界面跳转:含登录、注册及个人信息管理功能(讯飞星火 | 503点数解答 | 2024-06-06 23:49:29)387
- 超详细!用复杂 HTML 代码打造功能丰富网站,含特色搜索与展示(字节豆包 | 572点数解答 | 2024-11-17 07:58:26)258
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)429
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)349
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)355
- jQuery 实战:打造可添加与删除任务的待办事项列表应用(字节豆包 | 499点数解答 | 2024-10-29 20:40:48)271
- Java 创建 HTTP POST 请求实现文件上传:代码示例与注意要点 (字节豆包 | 300点数解答 | 2024-12-06 16:07:20)335
- C# WinForms 登录与主窗体开发:功能实现及开发陷阱规避(DeepSeek | 1208点数解答 | 2025-09-13 14:48:14)65
- C 语言实现单链表全功能操作:创建、增删查改与逆置测试( | 4796点数解答 | 2024-03-28 16:24:20)338
- Java 实现:长方形类创建与周长计算实例(字节豆包 | 273点数解答 | 2024-09-18 02:07:36)180
- MFC框架:实现单文档界面应用,含文件列表展示与双击打开内容功能(附C++代码) (字节豆包 | 420点数解答 | 2024-11-22 09:42:38)129
- C++ MFC:从Windows运行机制到SDI应用,实现文件列表展示与双击打开功能(百度文心 | 1389点数解答 | 2024-11-22 09:44:09)111