win32学习08.键盘鼠标定时器消息

来源:互联网 发布:vc6.0可视化编程实例 编辑:程序博客网 时间:2024/05/16 15:10

键盘和鼠标的消息参数:

/**********************LRESULT CALLBACK WindowProc(    HWND hwnd,       // handle to window    UINT uMsg,       // WM_KEYDOWN    WPARAM wParam,   // virtual-key code    LPARAM lParam    // key data);wParam 按键的虚拟键码,如果是WM_CHAR会被翻译成ASC编码。鼠标的则是其他按键消息,比如Ctrl。Specifies the virtual-key code of the nonsystem key. lParam 附带信息,鼠标的常常是鼠标坐标。Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table. ***********************/

键盘消息
键盘按下,传递电信号,然后翻译成虚拟键码,可以自己定义。

WM_KEYDOWN,WM_KEYUP,按键按下弹起。可以按下多次弹起一次,但是弹起一次必然按下一次。WM_SYSKEYDOWN,WM_SYSKEYUP,系统按键按下弹起WM_CHAR,字符消息,由TranslateMessage函数翻译:    1.判断是不是WM_KEYDOWM消息    2.通过虚拟键码的设置判断是不是可见字符按键    3.如果是可见字符,则判断capslock是否按下,判断大小写。

鼠标消息

WM_LBUTTONDOWN,WM_LBUTTONUP,鼠标左键按下弹起,一般成对出现,比如原窗口按下,移出窗口再弹起,原窗口则接收不到。WM_RBUTTONDOWN,WM_LBUTTONUP,鼠标右键按下弹起WM_MOUSEMOVE,光标移动WM_LBUTTONDBLCLK,WM_RBUTTONDBLCLK,鼠标左右键双击WM_MOUSEWHEEL,鼠标滚轮,wParam低八位:其他按键的状态高八位:附带滚轮偏移量,是120的倍数,正负表示方向,正向前,负向后。lParam:鼠标坐标双击消息:WM_LBUTTONDOWN,WM_LBUTTONUP,WM_LBUTTONDOWN,WM_LBUTTONDBLCLK

定时器
定时器:
WM_TIMER,精度是毫秒,但是准确度不够,原因是getmessage函数可能会先抓取别的消息。如果时间要求严格最好用线程。
消息参数:
wParam,定时器ID
lParam,定时器处理函数的指针

UINT_PTR SetTimer(      HWND hWnd,              // handle to window,定时器属于的窗口句柄。    UINT_PTR nIDEvent,      // timer identifier    UINT uElapse,           // time-out value    TIMERPROC lpTimerFunc   // timer procedure,定时器处理函数指针,如果为NULL则去窗口中找处理函数。);BOOL KillTimer(    HWND hWnd,          // handle to window,句柄    UINT_PTR uIDEvent   // timer identifier,定时器ID);
原创粉丝点击