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

相关内容

热门资讯

宝鸡旅行社哪家强?2025年最... 随着旅游市场的全面复苏,宝鸡作为历史文化名城吸引了大量游客。然而,面对众多旅行社,游客常常陷入选择困...
带娃住敦煌沙漠帐篷,晚上真的会... 每当有家长咨询“带孩子住沙漠帐篷会不会冷”这个问题时,我眼前总会浮现出去年五月那个特别的夜晚——我们...
山东省旅游饭店行业从业人员服务... 齐鲁晚报·齐鲁壹点 吴昊 11月19日,山东省“技能兴鲁”职业技能大赛——第八届山东省旅游饭店行业从...
恩施这片神秘土地,相信每一个人... "真希望有机会还能再次来到恩施"——这句话道出了多少人的心声!恩施就像一位蒙着面纱的土家姑娘,初见惊...
陆毅一家四口都江堰游玩,夫妻牵... 陆毅一家四口最近在都江堰被网友偶遇,两个女儿穿着同款粉色衣服,手拉手走着,看起来特别温馨。 两个孩子...