windows消息 鼠标消息、定时器消息
admin
2024-04-10 01:58:27

鼠标消息分类:
1.基本鼠标消息
WM_LBUTTONDOWN-鼠标左键按下
WM_LBUTTONUP-鼠标左键抬起
WM_RBUTTONDOWN-鼠标右键按下
WM_RBUTTONUP-鼠标右键抬起
附带消息:
wParam:其他按键的状态,例如CTRL/SHIFT等
lParam:鼠标的位置,窗口客户区坐标系。
LOWORD x坐标位置
HIWORD y坐标位置
一般情况鼠标按下、抬起成对出现。在鼠标移动过程中,会根据移动速度生产一系列的WM_MOUSEMOVE消息

2.双击消息
WM_LBUTTONDBLCLK-鼠标左键双击
WM_RBUTTONDBLCLK-鼠标右键双击
附带消息:
wParam-其他按键状态,例如CTRL/Shift等
lParam-鼠标位置,窗口客户区坐标系
LOWORD(lParam) //X坐标位置
HIWORD(lParam) //Y坐标位置
产生消息顺序
以左键双击为例:
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_LBUTTONUP
使用时需要在注册窗口类的时候添加CS_DBLCLKS风格

//窗口类的style必须添加CS_DBLCLKS样式
wnd.style = CS_HREDRAW | CS_VREDRAW |CS_DBLCLKS;

3.滚轮消息
WM_MOUSEWHEEL-鼠标滚轮消息
附带信息:
wParam:
LOWORD-其他按键的状态
HIWORD-滚轮的偏移量,通过正负值表示滚轮的方向。
正:向前滚动
负:向后滚动
lParam:鼠标当前的位置,屏幕坐标系
LOWORD x坐标
HIWORD y坐标
使用:通过偏移量,获取滚轮的方向和距离

定时器消息 WM_TIMER
生产时间:
在程序中创建定时器,当到达时间间隔时,定时器会向程序发送一个WM_TIMER消息。定时器的精度是毫秒,但是准确度很低。例如设置时间间隔为1000ms,但是会在非1000毫秒到过消息。
附带信息:
wParam:定时器ID
lParam:定时器处理函数的指针

创建销毁定时器

//创建定时器
UINT_PTR SetTimer(HWND hwnd, //定时器窗口句柄UINT_PTR nIDEvent, //定时器IDUINT uElapse,//时间间隔TIMERPROC lpTimerFunc //定时器处理函数指针(一般不用,为NULL)
) //创建成功返回非0值
//销毁定时器
BOOL KillTimer(HWND hwnd, //定时器窗口句柄UINT_PTR uIDEvent //定时器ID

相关内容

热门资讯

中国六大天花板羊肉汤!各地招牌... 在中国美食版图里,一碗热气腾腾的羊肉汤,是跨越南北的冬日治愈美味。它不止是抚慰味蕾的烟火佳肴,更是扎...
茗聚泉城创新出圈 莒南茶企新品... 茶香汇泉城,创新焕新韵。5月29日,第二十届中国(济南)国际茶产业博览会暨第十四届茶文化节在济南茶叶...
荔枝泡酒怎么泡?内行人教你一步... 荔枝泡酒,作为一种既能满足味蕾又兼具仪式感的果酒制作方式,近年来备受关注。尤其是夏季荔枝大量上市,用...
原创 夏... 步入炎炎夏日,气温一天比一天高,很多长辈朋友都会出现吃不下饭、饭菜没滋味的情况。闷热天气里,油腻的大...