注册 登录
编程论坛 C语言论坛

如何win32制作一个登录界面,我卡住了,不知道接下来代码该怎么写

himdonkin 发布于 2023-04-21 16:25, 1032 次点击
代码卡住了,不知道接下来该怎么写,就是WM_COMMAND里面的内容,请大佬们帮帮忙,跪谢!!!
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

程序代码:
#include<windows.h>
#include<stdio.h>
#include"resource.h"
HINSTANCE hInstance=0;
BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
    int buffer1=0 ;
    char* buffer2 = {0};
    switch (msg)
    {
    case WM_INITDIALOG:
        return TRUE;
    case WM_CLOSE:
        if (MessageBoxA(hDlg, "are you sure to close?", "Close?", MB_YESNO | MB_ICONQUESTION) == IDYES)
        EndDialog(hDlg, 0);
        break;
    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDC_EDIT1:
   
            break;
        case IDC_EDIT2:
            
            break;
        }
        return TRUE;
    }
    return FALSE;
}
int main()
{
    hInstance=GetModuleHandleA(NULL);

    DialogBoxA(hInstance, (char*)IDD_DIALOG3, NULL, DlgProc);
    return 0;
}
6 回复
#2
rjsp2023-04-21 16:32
就是WM_COMMAND里面的内容
不知所云!
为什么不肯明确地将要干什么说出来,而是让别人瞎猜?
#3
himdonkin2023-04-21 16:35
回复 2楼 rjsp
你好,大佬,我是一个新人,就是实现一个登录界面,输入账号密码后点击登录随便跳转一个网页或加载一个东西
#4
东海ECS2023-04-21 18:57
你可以按照以下步骤编写登录界面:

1.在对话框资源文件中设计你的登录界面,包括用户名、密码的编辑框和登录、重置按钮。

2.在DlgProc函数中,根据WM_COMMAND消息处理登录、重置按钮的事件。比如,当用户点击登录按钮时,获取编辑框中的用户名和密码,比对数据库中存储的用户名和密码,如果成功,就弹出"登录成功"的消息框,并退出对话框;如果失败,就弹出"用户名或密码错误"的消息框,并清空编辑框。

3.关于数据库的存储和比对,你可以使用第三方库或自己实现。如果你是初学者,可以先使用文件读写的方式来存储用户名和密码。

下面是一个简单的例子,演示了如何获取编辑框中的文本,以及如何弹出消息框:

程序代码:
case WM_COMMAND:
    switch (LOWORD(wParam))
    {
    case IDC_BUTTON_LOGIN:
        {
            // 获取编辑框中的文本
            HWND hUsername = GetDlgItem(hWnd, IDC_EDIT_USERNAME);
            int len = GetWindowTextLength(hUsername);
            char* username = (char*)malloc(len + 1);
            GetWindowText(hUsername, username, len + 1);
            
            HWND hPassword = GetDlgItem(hWnd, IDC_EDIT_PASSWORD);
            len = GetWindowTextLength(hPassword);
            char* password = (char*)malloc(len + 1);
            GetWindowText(hPassword, password, len + 1);

            // 如果用户名和密码匹配成功,弹出消息框并退出对话框
            if (is_valid_user(username, password))
            {
                MessageBox(hWnd, "登录成功!", "提示", MB_OK);
                EndDialog(hWnd, 0);
            }
            else
            {
                MessageBox(hWnd, "用户名或密码错误!", "提示", MB_OK);
               
                // 清空编辑框
                SetWindowText(hUsername, "");
                SetWindowText(hPassword, "");
            }

            free(username);
            free(password);
        }
        break;

    case IDC_BUTTON_RESET:
        // 清空编辑框
        SetWindowText(GetDlgItem(hWnd, IDC_EDIT_USERNAME), "");
        SetWindowText(GetDlgItem(hWnd, IDC_EDIT_PASSWORD), "");
        break;
    }
    break;



#5
himdonkin2023-04-21 20:53
回复 4楼 东海ECS
感谢大神
#6
cheetah2023-04-22 01:49
什么年代了,还有人用这个?
#7
hgwnet2023-10-01 12:07
回复 6楼 cheetah
win32程序几M,其他高级语言都是组件化50M起步
1