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

相关内容

热门资讯

别只把蒲公英当降火野菜,养生功... 提到蒲公英,多数人只联想到它能清热降火,却忽略了它作为药食同源食材的多重养生价值,甚至不少人盲目采摘...
原创 鄂... 每到周末, 武汉的年轻人坐高铁直奔长沙 逛一逛太平老街, 去橘子洲头吹吹江风, 再找家馆子,过足湘菜...
深藏不露的“护肝王”!每天吃几... 内容来源:中国中医药报 作者:叶心怡 佛手,为芸香科植物佛手的干燥果实,自古以来便是药食同源的珍贵食...
【健康养生】春季“上火”别乱治... 春为一年之始,是万物生长的季节,人体阳气长而阴气消,此时若不注意,很容易“上火”。 ...