当前位置:首页 > 操作系统 > Windows

Win32 Windows编程 六

wm_paint消息

1 wm_paint 由于窗口的互相覆盖等,产生需要绘制的区域, 那么会产生wm_paint消息。一般情况下,不直接发送wm_paint消息,通过api声明需要绘制区域来产生

wm_paint消息

例如可以使用 invalidaterect 声明一个需要重新绘制的区域

bool invalidaterect(
  hwndhwnd,           // handle to window
  const rect* lprect,  // rectangle coordinates
  boolberase// erase state
);
2 wm_paint 的注意点
2.1 如果一个消息队列中 有多个wm_paint消息,只有最后一个消息有作用
2.2 wm_paint消息处理中,要清空需要被绘制的区域。beginpaint
3 wm_paint 的使用
3.1 wm_paint开始时 必须调用beginpaint
3.2 wm_paint结束时 必须调用endpaint

键盘消息

1 键盘消息

按键消息

wm_keydown 当键被按下时产生

wm_keyup 当键被释放时产生

wm_syskeydown     (alt/f10) 当系统键被按下时产生

wm_syskeyup当系统键释放时产生

字符消息

wm_char  当有字符键被按下时产生 

translatemessage会将wm_keydown消息中 可以显示的按键 转换成wm_char的消息

2 消息参数

wparam - 虚拟键码

lparam  - 相关的按键信息

3 消息的使用

3.1 当有按键消息时,首先进入系统消息队列 然后被程序的消息循环获取 

3.2 消息的处理

4 键盘消息的顺序

对于可显示字符:wm_keydown wm_char wm_keyup

对于不可显示字符: wm_keydown wm_keyup

对于系统键: wm_syskeydown wm_keyup

如果按键一直不释放,会重复产生

wm_keydown(wm_keychar)

 


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐