消息的测试

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInst,
LPSTR lpszCmdLine,
int nCmdShow
)
{
MSG Msg;
HWND hwnd;
WNDCLASS wndclass;
char lpszClassName[] = "窗体";
//是这个窗口的类名wndclass,不是窗口左上角的那个
char lpszTitle[] = "My Window";
HBRUSH hbrush;
hbrush = CreateSolidBrush(RGB(0, 255, 0));//定义绿色画刷

wndclass.style = 0;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = hbrush;
//空值背景颜色,可用自定义画刷来调,绿色背景
wndclass.hInstance = hInstance;
wndclass.lpszClassName = lpszClassName;
wndclass.lpszMenuName = NULL;

if (!RegisterClass(&wndclass)) {
MessageBeep(0);
return 0;
}

hwnd = CreateWindow(
lpszClassName,
lpszTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

while (GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
HPEN hpen;
HBRUSH hbrush;
PAINTSTRUCT ps;

switch (message)
{
case WM_PAINT:
//每次窗口上都有,因为只要窗口动了,就发送WM_PAINT消息,
hdc = BeginPaint(hwnd, &ps);
hpen = CreatePen(PS_SOLID,10,RGB(255,0,0));
hbrush = CreateSolidBrush(RGB(255, 0, 0));
SelectObject(hdc, hpen);
SelectObject(hdc, hbrush);
MoveToEx(hdc,100, 100,NULL);
LineTo(hdc, 200, 300);
Arc(hdc, 200, 300, 500, 600, 340, 450, 489, 345);
Pie(hdc, 444, 32, 89, 234, 234, 123, 43, 125);
DeleteObject(hpen);
DeleteObject(hbrush);
EndPaint(hwnd, &ps);
break;
//case WM_LBUTTONDOWN:
//按下鼠标左键
//MessageBox(NULL, "FENGLEI", "FJFFJ", NULL);
//break;
case WM_RBUTTONDOWN:
//按下鼠标右键
MessageBox(NULL, "HAH", "FF", NULL);
break;
//case WM_MOUSEMOVE:
//MessageBox(NULL, "鼠标移过","鼠标移过", NULL);
//MessageBox(NULL, "HAH", "FF", NULL);
//break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}

 

 

 

原文地址:https://www.cnblogs.com/nanfengnan/p/13730539.html