windows消息机制
1.创建基本的窗口程序
#include <windows.h>
#include <string>
#include <iostream>
#define WM_TEST_MSG (WM_USER+1)
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
bool b_ret = false;
do {
switch (message) {
case WM_TEST_MSG: {
int recv_data = (int)wParam;
std::cout << "recv_data:" << recv_data;
return (LRESULT)recv_data;
break;
}
case WM_PAINT:
break;
case WM_DESTROY: {
MessageBoxA(NULL, "exit", "tips", 0);
PostQuitMessage(0);
break;
}
}
} while (false);
if (!b_ret) b_ret = DefWindowProc(hwnd, message, wParam, lParam);
return b_ret;
}
int main() {
static TCHAR szAppName[] = TEXT("MyWindow");
auto hInstance = GetModuleHandleA(NULL);
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.lpfnWndProc = WndProc;
wndclass.hInstance = hInstance;
wndclass.lpszClassName = szAppName;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpszMenuName = NULL;
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.cbWndExtra &#