用C++做一个简单的可点击按钮

本文介绍了如何在Visual Studio 2019中使用C++和Windows API创建一个桌面应用程序中的点击按钮。通过创建窗口类、设置窗口过程函数并使用CreateWindow函数生成按钮,详细讲解了按钮的实现过程。当按钮被点击时,会弹出一个消息框。文章提供了完整的代码示例,并鼓励读者下载项目文件进行实践。
摘要由CSDN通过智能技术生成

今天在用VS2019开发软件的时候,觉得老是只有输入,而没有像游戏那样的按钮,所以在编译器上试了又试,终于做成功了,现在我给你们讲一讲创建按钮的代码函数及思路。

一、创建一个项目

我用VS2019来创建的项目,我们可以用Windows桌面应用程序,因为控制台程序的限制条件较多,所做出来的按钮不能进行太大的扩展,而且如果使用者点击的地方错了,成了选择本文,那么我也没办法。ƪ(˘⌣˘)ʃ,就整个程序就像触电了一样,动不了了。桌面应用程序不会这样子,而且很多软件像WPS、MSOffice都是用桌面应用程序开发的,所以今天我们也用桌面应用程序项目做一个可点击按钮吧。

首先打开VS,创建一个桌面应用程序。

 之后,我们可以将程序的名字不变,我这里使用的是按钮,然后保存,就进入了编辑界面了。

 我们将原来的框架文件不要动,重新创建一个.cpp文件,用来从头创建按钮,能更有思路一些。

Sure, 我可以为你提供一段基本的窗口程序的示例代码,你可以使用它来创建一个带有单个按钮的窗口,以下为代码: ``` #include <windows.h> #define BTN_ID 1 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_COMMAND: { switch (LOWORD(wParam)) { case BTN_ID: MessageBox(hWnd, "Button Clicked!", "Click", MB_OK | MB_ICONINFORMATION); break; } break; } case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, msg, wParam, lParam); break; } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { // Register Window Class 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)(COLOR_WINDOW + 1); wndClass.lpszMenuName = NULL; wndClass.lpszClassName = "My Window Class"; if (!RegisterClass(&wndClass)) { MessageBox(NULL, "Failed to register window class!", "Error", MB_OK | MB_ICONERROR); return 0; } // Create Window HWND hWnd; hWnd = CreateWindow( "My Window Class", "Button Clicker", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, NULL, NULL, hInstance, NULL); if (hWnd == NULL) { MessageBox(NULL, "Failed to create window!", "Error", MB_OK | MB_ICONERROR); return 0; } // Create Button HWND hButton; hButton = CreateWindow( "BUTTON", "Click Me", WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 150, 100, 100, 30, hWnd, (HMENU)BTN_ID, hInstance, NULL); if (hButton == NULL) { MessageBox(NULL, "Failed to create button!", "Error", MB_OK | MB_ICONERROR); return 0; } // Show Window ShowWindow(hWnd, nShowCmd); UpdateWindow(hWnd); // Run Message Loop MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } // Return return msg.wParam; } ``` 如果您想要编辑此代码并运行它,请确保将其保存为 .cpp 文件,然后使用适用于您的编译器的命令来编译和运行该程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会叫的喵

这次是我第一次创作,多多鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值