9.windows消息机制

Posted 不忘初心 方得始终

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.windows消息机制相关的知识,希望对你有一定的参考价值。

1.绘图消息

  WM_PAINT - 当窗口需要绘制的时候,会发送窗口处理函数。

  需要重新绘制的情况:

    (1)窗口从创建到第一次显示

    (2)从被遮挡到重新显示

    (3)窗口变大(窗口变小时,窗口本身不需要重新,但如果注册窗口类中加了CS_HREDRAW | CS_VREDRAW风格,就会重绘) 

    (4)调用InvalidateRect函数  

  窗口无效区域 - 被声明成需要重新绘制的区域。

  BOOL InvalidateRect( HWND              hWnd,    //窗口句柄

                                    CONST RECT*   lpRect,    //区域的矩形坐标

                                    BOOL               bErase);  //重回前是否擦除

  在程序中,如果需要绘制窗口,调用函数声明窗口无效区域。

  WPARAM - 不使用

  LPARAM - 不使用

  消息处理步骤

    (1)开始绘图处理

       HDC BeginPaint( HWND  hWnd,  //绘图窗口

                                        LPPAINTSTRUCT  lpPaint);  //绘图参数的buffer

       返回绘图设备句柄HDC

    (2)绘图

    (3)结束绘图

       BOOL EndPaint( HWND  hWnd,  //绘图窗口

                                        CONST PAINTSTRUCT  *lpPaint);  //绘图参数的指针

2.键盘消息

  WM_KEYDOWN - 按键被按下时产生

  WM_KEYUP - 按键被放开时产生

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

  WM_SYSKEYUP - 系统键放开时产生

  WM_CHAR - 字符消息(TranslateMessage发送的)

  消息参数:

    按键消息:WPARAM - 按键的Virtual Key(虚拟键码)

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

    WM_CHAR消息:

         WPARAM - 输入的字符(ASC字符编码)

         LPARAM - 按键的相关参数

以上是关于9.windows消息机制的主要内容,如果未能解决你的问题,请参考以下文章

如何实现消息机制

Android消息机制和原理

消息机制

windows程序消息循环机制

windows消息机制是怎么一回事?谢谢!

windows消息响应机制到底是啥,谁发出消息,啥是消息?谁来响应消息?怎样响应?