WIN32 消息总结

1、键盘消息

键盘会产生如下两种消息

1、按键消息

消息分类:

WM_KEYDOWN

WM_KEYUP

WM_SYSKEYDOWN   系统按键按下时产生,如ALT  F10

WM_SYSKEYUP

参数

        WPARAM   按键的vritual key

        LPARAM    按键的参数,比如按下几次

2、字符消息

WM_CHAR :是由WM_KEYDOWN消息Translate()之后产生的,然后再发送给窗口过程。

TranslateMessage  将虚拟键消息转换为字符消息。字符消息被送到调用进程的消息队列中,在下一次进程调用函数GetMessage或PeekMessage时被读出。

实例:

 2、鼠标消息

1、消息分类

  • 基本消息

WM_LBUTTONNDOWN

WM_LBUTTONUP

WM_RBUTTONDOWN

WM_RBUTTONUP

WM_MOUSEMOVE

  • 双击消息

WM_LBUTTONDBLCLK

WM_RBUTTONDBLCLK

        消息顺序:

                WM_LBUTTONNDOWN

                WM_LBUTTONUP 

                WM_LBUTTONDBLCLK

                WM_LBUTTONUP 

        注意:注册窗口类是    CS_DBLCLKS   风格

附带消息

WPARAM    其他按键状态  如ctrl/shift

LPARAM     点击坐标   LOWORD x   HIWORD y

  • 滚轮消息

WM_MOUSEWHEEL

附带消息

        WPARAM    LOWORD   其他按键状态  如ctrl/shift   HIWORD   滚轮偏移量

        LPARAM     点击坐标 (屏幕坐标系)  LOWORD x   HIWORD y

定时器消息

本质时:GetMeaasge产生

  • 消息类型

WM_TIMER   

附带消息

        WPARAM   定时器ID

        LPARAM     定时器处理函数的指针

  • 创建定时器

        SetTimer(

                HWND,      //捕获该定时消息的窗口句柄

                UINT,           //定时器的id

                UINT,           //以毫秒为单位的定时长度

                TIMERPROC); //定时器处理函数指针(一般为NULL)

  • 销毁定时器

        KillTimer(  

                 hWnd: HWND;    {与定时器相关联的窗口句柄}  

                uIDEvent: UINT {定时器标识符}

        ): BOOL;

自定义定时器处理函数

VOID CALLBACK   TimerProc(

        HWND hWnd,           // 消息时间函数的句柄

        UINT message,        // WM_TIMER 消息

        UINT_PTR itimer,     // 定时器标识符

        DWORD dwTime);    //从系统开始运行到现在所经过的毫秒数。该值由getTickCount函数返回。


版权声明:本文为sinat_38363122原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。