自绘标题栏如何不让系统绘制,即不出现闪烁的现象

pcsuite 2011-07-25 04:30:46
具体:响应了系统的OnNcPaint函数在其中来绘制标题栏,但是当鼠标在标题栏滑动时就会闪烁,辨别发现闪烁的那层是系统默认的颜色,所以想把系统绘制的系统给禁止了,希望有经验的大虾们支支招,谢谢。
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcsuite 2011-07-27
  • 打赏
  • 举报
回复
找到闪烁的原因了,是因为在ONcPaint的时候不小心调用了系统设置标题的方法导致的,谢谢各位,
小小总结一下:自绘标题栏,重载ONcPaint函数,左键按下,鼠标移动,碰撞检测函数即可。
结贴。
bfcode 2011-07-25
  • 打赏
  • 举报
回复
对头,去掉所有nc,然后再客户区模拟下,方便,好看,实用
Wang471981125 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 stjay 的回复:]

比较彻底的做法:(一般DirectUI做法)
将原窗口的NC区都去掉
在客户区绘制所有控件
标题栏容易模拟啦,放个static画icon,另一个static画标题,3个按钮
[/Quote]
stjay 2011-07-25
  • 打赏
  • 举报
回复
比较彻底的做法:(一般DirectUI做法)
将原窗口的NC区都去掉
在客户区绘制所有控件
标题栏容易模拟啦,放个static画icon,另一个static画标题,3个按钮
pcsuite 2011-07-25
  • 打赏
  • 举报
回复
三楼fandh,我的标题栏就是对话框的标题栏,我是直接在其上面画位图,我想知道怎么才能屏蔽掉系统绘制的那个消息,谢谢。
四楼小飞飞,我的做法目前就是
2.在WM_NCCALCSIZE中指定非客区域.
3.在WM_NCPAINT绘制非客户区,还是闪烁,
我是在原来的标题栏的基础上绘制位图的。不知道各位还有什么好方法没呀。
jdzfjfhnui 2011-07-25
  • 打赏
  • 举报
回复

1.首先去掉WS_CAPTION风格
2.在WM_NCCALCSIZE中指定非客区域.
3.在WM_NCPAINT绘制非客户区
fandh 2011-07-25
  • 打赏
  • 举报
回复
你的标题栏大概使用的是MFC里面的类吧,你重载这个类,对里面画图部分,比如onpaint,drawitem等重载,让里面什么都不干,然后,你使用就使用你重载的这个类!这样,这个标题栏就不会重新画了!
pcsuite 2011-07-25
  • 打赏
  • 举报
回复
hello,能不能说清楚点,能问就说明不是很懂嘛。谢谢
fandh 2011-07-25
  • 打赏
  • 举报
回复
建议标题栏重载!

15,979

社区成员

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

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