[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <time.h>
#include <tchar.h>
HINSTANCE g_hInstance = 0;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPreInstance,
LPSTR lpCmdLine,
int nShowCmd
)
{
g_hInstance = hInstance;
srand((unsigned)time(NULL));
//1.注册窗口类
WNDCLASS wc = { 0 };
wc.lpszClassName = _T("MyClass");
wc.lpfnWndProc = WndProc;
wc.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
RegisterClass(&wc);
//2.创建窗口
HWND hWnd = CreateWindow(
wc.lpszClassName,
_T("顽皮的按钮"),
WS_OVERLAPPEDWINDOW,
200, 100,
640, 480,
NULL,
NULL,
g_hInstance,
0
);
//3.更新显示窗口
UpdateWindow(hWnd);
ShowWindow(hWnd, SW_SHOW);
//4.消息循环
MSG Msg = { 0 };
while (GetMessage(&Msg, 0, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return (int)Msg.lParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static int nCnt = 0;
switch (uMsg)
{
case WM_CREATE:
{
HWND hButton = CreateWindow(
_T("button"),
_T("来点我"),
WS_CHILD | WS_VISIBLE,
10, 10,
80, 45,
hWnd,
HMENU(0x1000),
g_hInstance,
0
);
}break;
case WM_COMMAND:
{
DWORD nCode = HIWORD(wParam);
DWORD nId = LOWORD(wParam);
if (nId == 0x1000 && nCode == BN_CLICKED)
{
if (nCnt == 10)
{
MessageBox(hWnd, _T("恭喜你点到了!"), _T("嘿嘿"), MB_OK);
PostMessage(hWnd, WM_CLOSE, 0, 0);
}
HWND hButton1 = GetDlgItem(hWnd, 0x1000);
int x = rand() % 520;
int y = rand() % 390;
MoveWindow(hButton1, x, y, 100, 50, true);
UpdateWindow(hWnd);
nCnt++;
}
}break;
case WM_CLOSE:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}