注册机-C语言

C程序

#include <windows.h>
#include <string.h>

#define MAX_NAME_LEN 100
#define REGCODE "12345"

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    static HWND name_label, name_edit, regcode_label, regcode_edit, button;
    static HFONT font;
    switch (message) {
        case WM_CREATE:
            font = CreateFont(16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, TEXT("宋体"));
            name_label = CreateWindow(TEXT("STATIC"), TEXT("Please enter your name:"), WS_CHILD | WS_VISIBLE | SS_LEFT, 20, 20, 200, 30, hWnd, NULL, NULL, NULL);
            SendMessage(name_label, WM_SETFONT, (WPARAM)font, MAKELPARAM(TRUE, 0));
            name_edit = CreateWindow(TEXT("EDIT"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOHSCROLL, 220, 20, 180, 30, hWnd, NULL, NULL, NULL);
            SendMessage(name_edit, WM_SETFONT, (WPARAM)font, MAKELPARAM(TRUE, 0));
            regcode_label = CreateWindow(TEXT("STATIC"), TEXT("Please enter the registration code:"), WS_CHILD | WS_VISIBLE | SS_LEFT, 20, 60, 200, 30, hWnd, NULL, NULL, NULL);
            SendMessage(regcode_label, WM_SETFONT, (WPARAM)font, MAKELPARAM(TRUE, 0));
            regcode_edit = CreateWindow(TEXT("EDIT"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOHSCROLL, 220, 60, 180, 30, hWnd, NULL, NULL, NULL);
            SendMessage(regcode_edit, WM_SETFONT, (WPARAM)font, MAKELPARAM(TRUE, 0));
            button = CreateWindow(TEXT("BUTTON"), TEXT("Verify"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 100, 100, 120, 30, hWnd, NULL, NULL, NULL);
            SendMessage(button, WM_SETFONT, (WPARAM)font, MAKELPARAM(TRUE, 0));
            break;
        case WM_COMMAND:
            if (lParam == (LPARAM)button) {
                TCHAR name[MAX_NAME_LEN + 1];
                GetWindowText(name_edit, name, MAX_NAME_LEN + 1);
                TCHAR regcode[MAX_NAME_LEN + 1];
                GetWindowText(regcode_edit, regcode, MAX_NAME_LEN + 1);
                if (strcmp(regcode, REGCODE) == 0) {
                    MessageBox(hWnd, TEXT("Verification succeeded!"), TEXT("Tip"), MB_OK | MB_ICONINFORMATION);
                } else {
                    MessageBox(hWnd, TEXT("Verification failed, please try again!"), TEXT("Tip"), MB_OK | MB_ICONERROR);
                }
            }
            break;
        case WM_DESTROY:
            DeleteObject(font);
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    SetConsoleOutputCP(CP_UTF8);
    SetConsoleCP(CP_UTF8);

    WNDCLASS wc;
    HWND hWnd;
    MSG msg;
    ZeroMemory(&wc, sizeof(wc));
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WndProc;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.lpszClassName = TEXT("MyWindowClass");
    if (!RegisterClass(&wc)) {
        MessageBox(NULL, TEXT("Window registration failed!"), TEXT("Error"), MB_OK | MB_ICONERROR);
        return 0;
    }
    hWnd = CreateWindow(TEXT("MyWindowClass"), TEXT("Registration Machine"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 450, 200, NULL, NULL, hInstance, NULL);
    if (!hWnd) {
        MessageBox(NULL, TEXT("Window creation failed!"), TEXT("Error"), MB_OK | MB_ICONERROR);
        return 0;
    }
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
}

猜你喜欢

转载自blog.csdn.net/Stupid__Angel/article/details/130533087
今日推荐