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)!