用c++写一个登录页面
时间: 2023-08-04 07:23:16 浏览: 52
好的,以下是一个使用C++和Win32 API实现的简单登录页面示例:
```c++
#include <windows.h>
// 定义全局变量
HWND g_hWnd, g_hUsername, g_hPassword, g_hLogin;
// 定义窗口过程函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
// 创建用户名输入框
g_hUsername = CreateWindow(TEXT("EDIT"), TEXT(""),
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL,
100, 50, 200, 25, hWnd, NULL, NULL, NULL);
// 创建密码输入框
g_hPassword = CreateWindow(TEXT("EDIT"), TEXT(""),
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL | ES_PASSWORD,
100, 100, 200, 25, hWnd, NULL, NULL, NULL);
// 创建登录按钮
g_hLogin = CreateWindow(TEXT("BUTTON"), TEXT("Login"),
WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
150, 150, 100, 25, hWnd, NULL, NULL, NULL);
break;
case WM_COMMAND:
if (lParam == (LPARAM)g_hLogin)
{
TCHAR szUsername[256], szPassword[256];
GetWindowText(g_hUsername, szUsername, 256);
GetWindowText(g_hPassword, szPassword, 256);
// 在这里可以进行登录验证的操作
// 如果用户名和密码正确,可以弹出登录成功的提示框
// 如果用户名和密码错误,可以弹出登录失败的提示框
// 这里只是一个示例,实际情况需要根据具体需求进行修改
MessageBox(hWnd, TEXT("Login successful!"), TEXT("Success"), MB_OK);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// 程序入口函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
TCHAR szClassName[] = TEXT("LoginWindow");
TCHAR szWindowName[] = TEXT("Login");
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szClassName;
wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&wcex))
{
MessageBox(NULL, TEXT("Failed to register window class!"), TEXT("Error"), MB_OK | MB_ICONERROR);
return 1;
}
g_hWnd = CreateWindow(szClassName, szWindowName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
NULL, NULL, hInstance, NULL);
if (!g_hWnd)
{
MessageBox(NULL, TEXT("Failed to create window!"), TEXT("Error"), MB_OK | MB_ICONERROR);
return 2;
}
ShowWindow(g_hWnd, nCmdShow);
UpdateWindow(g_hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
```
这段代码使用了Win32 API来创建一个窗口,并在窗口中添加了用户名输入框、密码输入框和登录按钮。在响应登录按钮的点击事件时,通过`GetWindowText`函数获取输入框中的用户名和密码,然后可以进行登录验证等操作。最后如果登录成功,弹出登录成功的提示框,否则弹出登录失败的提示框。你可以根据自己的需求对这个示例进行修改和扩展。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)