Win10 下 C# 的WM_PAINT消息在调用base.WndProc后绘制失效

TearyWang 2017-09-11 11:48:22
我希望在窗口的标题栏上自绘一个按钮,但不希望改变系统自己的风格,于是在网上很多关于在标题栏上绘制按钮的示例,基本思路都是override WndProc,自己处理WM_NCPAINT消息和WM_NCACTIVATE消息。


protected override void WndProc(ref Message m)
{
// if (m.Msg != 0x86 || m.Msg != 0x85) // 添加上此行,绘制的内容就能看见。
base.WndProc(ref m);
switch (m.Msg)
{
case 0x86://WM_NCACTIVATE
goto case 0x85;

case 0x85://WM_NCPAINT:
// Do custom paints
......
break;
}
}


但是在Win10下,在执行了base.WndProc后,再标题栏上执行的绘制都不可见。但如果对于WM_PAINT和WM_ACTIVATE消息不执行base.WndProc绘制的内容就能看见。

这是什么问题?有没有解?咱解?
...全文
334 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
TearyWang 2017-09-21
  • 打赏
  • 举报
回复
再顶一下......
TearyWang 2017-09-14
  • 打赏
  • 举报
回复
顶上去。。。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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