day11
**********************************************************************************************
键盘消息
1.键盘消息的分类
WM_KEYDOWN 按键被按下时产生
WM_KEYUP 按键被放开时产生
WM_SYSKEYDOWN 系统键按下时产生 比如ALT、F10
WM_SYSKEYUP 系统按键放开时产生
附带信息:
WPARAM --- 按键的Virtual Key
LPARAM --- 按键的参数,例如按下的次数
1.虚拟按键值无法区分大小写的值,所以需要翻译
2.WM_KEYDOWN和WM_KEYUP未必是成对出现
3.系统按键不产生虚拟按键值
2.WM_CHAR:字符消息
TranslateMessage在转换WM_KEYDOWN消息时,对于可见字符可以产生WM_CHAR,不可见字符无此消息
附带信息:
WPARAM --- 输入的字符的ASCII字符编码值
LPARAM --- 按键的相关参数
day12
************************************************************************************************
鼠标消息
1.分类
基本鼠标消息
WM_LBUTTONDOWN 鼠标左键按下
WM_LBUTTONUP 鼠标左键抬起
WM_RBUTTONDOWN 鼠标右键按下
WM_RBUTTONUP 鼠标右键抬起
WM_MOUSEMOVE 鼠标移动消息
双击消息
WM_LBUTTONDBLCLK 鼠标左键双击
WM_RBUTTONDBLCLK 鼠标右键双击
滚轮消息
WM_MOUSEWHEEL 鼠标滚动消息
2.鼠标基本消息
附带信息:
WPARAM:其他按键的状态,例如ctrl/shift等等
IPARAM:鼠标的位置,窗口客户区坐标系
LOWORD(lParam) X坐标位置
HIWORD(lParam) Y坐标位置
一般情况下鼠标按下/抬起成对出现。在鼠标移动过程中,会根据移动速度产生一系列的WM_MOUSEMOVE消息
3.双击消息
附带信息:
WPARAM:其他按键的状态,例如ctrl/shift等等
IPARAM:鼠标的位置,窗口客户区坐标系
LOWORD(lParam) X坐标位置
HIWORD(lParam) Y坐标位置
消息产生顺序
以左键双击为例:
WM_LBUTTONDOWN 鼠标左键按下
WM_LBUTTONUP 鼠标左键抬起
WM_LBUTTONDBLCLK 鼠标左键双击
WM_LBUTTONUP 鼠标左键抬起
使用时需要在注册窗口类的时候添加CS_DBLCLKS风格
4.鼠标的滚轮消息
附带信息:
WPARAM:
LOWORD --- 其他按键的状态
HIWORD --- 滚轮的偏移量,通过正负值表示滚动的方向
正:向前滚动 负:向后滚动
IPARAM:鼠标当前的位置,屏幕坐标系
LOWORD(lParam) X坐标位置
HIWORD(lParam) Y坐标位置
使用:通过偏移量,获取滚动的方向和距离
day13
***************************************************************************************************
1.定时器消息:WM_TIMER
产生时间:
在程序中创建定时器,当到达时间间隔时,GetMessage会向程序发送一个WM_TIMER消息。
定时器的精度是毫秒,但是准确度很低。
为什么准备度不高?
因为GetMessage不会时时刻刻检测定时器的消息,所以,只有等到GetMessage空闲的时候,才会检测。
附带信息:
wPARAM:定时器ID
lPARAM:定时器处理函数的指针
2.创建和销毁定时器
1.创建定时器
UINT_PTR SetTimer(
HWND hWnd, //定时器窗口句柄
UINT_PTR nIDEvent, //定时器ID
UINT uElapse, //时间间隔(单位:毫秒)
TIMERPROC lpTimerFunc //定时器处理函数指针(一般不使用,为NULL)
);创建成功,返回非0
2.关闭定时器
BOOL KillTimer(
HWND hWnd, //定时器窗口句柄
UINT_PTR nIDEvent, //定时器ID
);
day14
**************************************************************************************************
1.菜单分类
1.窗口的顶层菜单
2.弹出式菜单
3.系统菜单
HMENU类型表示菜单,ID表示菜单项
2.资源相关
1.资源脚本文件: *rc文件(脚本文件)
2.编译器:RC.EXE
WINDOWS编程学习笔记(三)
最新推荐文章于 2024-09-09 17:09:32 发布