键盘消息简单示例

#include <Windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, UINT, LONG);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInst,
LPSTR lpszCmdLine,
int nCmdShow
)
{
//定义变量
MSG Msg;
HWND hwnd;
WNDCLASS wndclass;
char lpszClassName[] = "窗口";
char lpszTitle[] = "win";

//初始化窗体
wndclass.style = 0;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = NULL;
wndclass.cbWndExtra = NULL;
wndclass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hInstance = hInstance;
wndclass.lpszClassName = lpszClassName;
wndclass.lpszMenuName = NULL;

//注册
if (!RegisterClass(&wndclass))
{
MessageBeep(0);
return FALSE;
}
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, UINT wParam, LONG lParam)
{
switch (message) {
case WM_KEYDOWN:
{
switch (wParam)
{
case VK_UP:
MessageBox(NULL, "up", "消息", NULL);
break;
case VK_SHIFT:
MessageBox(NULL, "shift", "消息", NULL);
break;
}
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}

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