怎样改变标题栏背景?

wangyekyo 2006-09-21 12:35:38
我捕获的WM_NCPANIT消息改变了标题栏的背景
但在程序刚启动是标题栏并没有改变
只有对窗口进行了一定操作后才会改变(比如说改变大小)
不知道这是什么原因,是不是还要捕获什么消息
还请大虾们帮帮忙
...全文
313 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mopyman 2006-10-09
  • 打赏
  • 举报
回复
窗口的非客户并不只是在WM_NCPAINT消息里绘制
WM_NCACTIVATE,WM_NCLBUTTONDOWN,WM_NCMOUSEMOVE等都绘对标题栏进行重绘,
当然你可以在这些消息中设定一些标志,然后把消息路由到WM_NCPAINT进行相应绘制.
WM_NCPAINT和WM_PAINT在概念上并不一致,客户区都是在WM_PAINT消息中绘制,
而非客户区确不同,要有几个消息协同控制,你还要处理WM_NCHITTEST才能处理的更完美.
wangyekyo 2006-09-21
  • 打赏
  • 举报
回复
还是不行,都要对窗口操作之后在能出来
littlepboy 2006-09-21
  • 打赏
  • 举报
回复
要在OnSize、OnNcActivate、OnNcLButtonDown等各种消息处理中调用OnNcPaint
wangyekyo 2006-09-21
  • 打赏
  • 举报
回复
窗口在什么情况下会绘制非客户区
难道不是在OnNcPaint函数里绘制的
不然为什么只拦截WM_NCPAINT消息不行
konj 2006-09-21
  • 打赏
  • 举报
回复
自绘窗体
zhucde 2006-09-21
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=317

15,975

社区成员

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

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