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

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...