重写DrawItem虚函数什么时候触发?

xiajun00 2007-12-04 06:57:26
做了个测试,运行后用其他软件的窗口去遮挡一下控件,好像需要完全覆盖才触发,如果只覆盖一小部分没有触发?
怎么会这样?
...全文
249 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fei_xf 2007-12-17
  • 打赏
  • 举报
回复
不要忘了先在控件属性中勾上OwnerDraw
xiajun00 2007-12-10
  • 打赏
  • 举报
回复
jameshooo:
那就是说用一个窗口去覆盖再移开肯定会触发,可是测试的结果是颜色好像没有恢复。
jameshooo 2007-12-10
  • 打赏
  • 举报
回复
绘制消息肯定已经发送给你了,应该是你自己没有处理好具体的绘制
tccqs 2007-12-07
  • 打赏
  • 举报
回复
up and mark
jameshooo 2007-12-07
  • 打赏
  • 举报
回复
如果窗口被覆盖的过程是逐渐覆盖,则不会触发绘制消息,如果覆盖过程是逐渐出现,这时才会触发绘制消息。或者打个比方,月食,月亮越来越小时不会重绘,月亮越来越大时重绘
xiajun00 2007-12-06
  • 打赏
  • 举报
回复
bwmwm:我用的是dialogbar,基于单文档程序,dialogbar靠左停靠。
youyifang:自己发送,我如何判断合适发送?
youyifang 2007-12-06
  • 打赏
  • 举报
回复
系统发送wm_drawitem消息后就会有这个函数处理,你也可以自己发送,可以重绘很多东西,具体的可以看下msdn。
阜哥 2007-12-06
  • 打赏
  • 举报
回复
你是用什么控件?DrawItem 怎么写的?是不是对每一个item和每种状态都判断了呢?
QSmile 2007-12-05
  • 打赏
  • 举报
回复
DrawItem 好象是菜單與 Toolbar 重繪時觸發
leavef 2007-12-05
  • 打赏
  • 举报
回复
应该只要某一item无效时就会触发吧

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧