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;
}