如图设计用户登录程序。当用户单击“登录”按钮后判断出用户输入是否正确,并用消息对话框显示提示信息。正确时消息对话框显示“欢迎进入”,错误时消息对话框显示“用户名和密码错误”。当用户单击“重置”按钮,清空用户输入;当用户单击退出“用户登录”窗口。
时间: 2023-10-16 12:09:54 浏览: 113
好的,这是一个简单的用户登录程序设计,我可以为您提供参考代码,您可以根据需要进行修改和完善。
```
#include <windows.h>
#include <string.h>
// 定义窗口类名
#define MAIN_WIN_CLASS_NAME "LoginWndClass"
// 定义窗口标题
#define MAIN_WIN_TITLE "用户登录"
// 定义窗口宽度和高度
#define MAIN_WIN_WIDTH 300
#define MAIN_WIN_HEIGHT 200
// 定义控件ID
#define IDC_USERNAME_EDIT 101
#define IDC_PASSWORD_EDIT 102
#define IDC_LOGIN_BUTTON 103
#define IDC_RESET_BUTTON 104
// 定义消息框标题和内容
#define MESSAGE_BOX_TITLE "提示"
#define MESSAGE_BOX_WELCOME "欢迎进入"
#define MESSAGE_BOX_ERROR "用户名和密码错误"
// 定义全局变量
HWND g_hMainWnd;
HWND g_hUsernameEdit;
HWND g_hPasswordEdit;
// 定义窗口过程
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:
{
// 创建用户名编辑框
g_hUsernameEdit = CreateWindow("EDIT", NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL,
80, 30, 150, 25, hWnd, (HMENU)IDC_USERNAME_EDIT,
((LPCREATESTRUCT)lParam)->hInstance, NULL);
// 创建密码编辑框
g_hPasswordEdit = CreateWindow("EDIT", NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL | ES_PASSWORD,
80, 70, 150, 25, hWnd, (HMENU)IDC_PASSWORD_EDIT,
((LPCREATESTRUCT)lParam)->hInstance, NULL);
// 创建“登录”按钮
CreateWindow("BUTTON", "登录",
WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
80, 110, 60, 25, hWnd, (HMENU)IDC_LOGIN_BUTTON,
((LPCREATESTRUCT)lParam)->hInstance, NULL);
// 创建“重置”按钮
CreateWindow("BUTTON", "重置",
WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
150, 110, 60, 25, hWnd, (HMENU)IDC_RESET_BUTTON,
((LPCREATESTRUCT)lParam)->hInstance, NULL);
}
break;
case WM_COMMAND:
{
if (LOWORD(wParam) == IDC_LOGIN_BUTTON)
{
// 获取用户名和密码
TCHAR szUsername[100] = {0};
TCHAR szPassword[100] = {0};
GetWindowText(g_hUsernameEdit, szUsername, sizeof(szUsername));
GetWindowText(g_hPasswordEdit, szPassword, sizeof(szPassword));
// 判断用户名和密码是否正确
if (strcmp(szUsername, "admin") == 0 && strcmp(szPassword, "123456") == 0)
{
MessageBox(hWnd, MESSAGE_BOX_WELCOME, MESSAGE_BOX_TITLE, MB_OK);
}
else
{
MessageBox(hWnd, MESSAGE_BOX_ERROR, MESSAGE_BOX_TITLE, MB_OK);
}
}
else if (LOWORD(wParam) == IDC_RESET_BUTTON)
{
// 清空用户名和密码
SetWindowText(g_hUsernameEdit, "");
SetWindowText(g_hPasswordEdit, "");
}
}
break;
case WM_CLOSE:
{
// 关闭窗口
DestroyWindow(hWnd);
}
break;
case WM_DESTROY:
{
// 退出程序
PostQuitMessage(0);
}
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
// 程序入口
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 注册窗口类
WNDCLASS wc;
memset(&wc, 0, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = MainWndProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszClassName = MAIN_WIN_CLASS_NAME;
RegisterClass(&wc);
// 创建主窗口
g_hMainWnd = CreateWindow(MAIN_WIN_CLASS_NAME, MAIN_WIN_TITLE,
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
MAIN_WIN_WIDTH, MAIN_WIN_HEIGHT, NULL, NULL, hInstance, NULL);
// 显示主窗口
ShowWindow(g_hMainWnd, nCmdShow);
UpdateWindow(g_hMainWnd);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
```
以上代码实现了一个用户登录窗口,包括用户名和密码的编辑框,登录和重置按钮,以及消息框的提示信息。您可以根据需要进行修改和完善。