滴水-day39-事件-消息-消息处理函数
事件
什么是事件?
事件就是一种动作,用户点击鼠标,单击键盘等等都可称为事件,他是用户做了某种动作而触发的。
消息
当用户触发事件的时候Windows会把这个事件封装成一个消息存放到MSG消息结构体中等待发出消息
消息队列
系统消息队列
应用消息队列
系统会自动区分哪些是需要系统处理的,哪些是需要应用处理的,当放到应用消息队列的时候,应用程序会不间断的读取这个消息队列做相应的处理,当然应用也不是什么消息都会处理,有些消息不是该应用的或者不是该应用关心的消息,该应用就不会进行处理。所以在消息处理函数中会筛选一些消息使得应用程序来处理。
消息处理函数
要想处理菜单栏消息将会通过WndProc函数的wParam参数的高位来进行处理。
鼠标消息处理
// 移动窗口消息
case WM_MOVE:
{
// lParam 低位X坐标,高位Y坐标
POINTS points = MAKEPOINTS(lParam);
//OutputDebugStringF("xPos---->%d yPos---->%d\\n", points.x, points.y);
return 0;
}
// 窗口大小
case WM_SIZE:
{
// wParam
// SIZE_MAXIMIZED-->最大化
// SIZE_MINIMIZED--最小化
// lParam 低位->新的宽度,高位->新的高度
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
OutputDebugStringF("width--->%d height--->%d\\n", width, height);
return 0;
}
License:
CC BY 4.0