none
C# 如何重绘非客户区域,包括标题栏,按钮和图标 RRS feed

  • 问题

  • C# 如何重绘非客户区域,包括标题栏,最大化,最小化,还原按钮和标题栏的图标,希望能给出你宝贵的源代码,谢谢!!!
    2010年12月5日 14:53

答案

  • 大家对C++的GUI界面编程应该不会陌生吧!

    本人对一个WINFORM窗口的标题栏进行重绘,也就是通过重写WndProc函数后捕获WM_NCPAINT消息对窗口的标题栏进行重绘。

    2010年12月6日 13:30

全部回复

  • 你好!

    若你是想打造个性的窗体,可以将 FormBoderStyle 设置为 none 去掉边框与标题栏,自己重新设计界面。


    知识改变命运,奋斗成就人生!
    2010年12月5日 15:38
    版主
  • dear
    您是要自定控件吗,若是您可参考以下,看对您有无帮助。
    http://www.dotblogs.com.tw/yc421206/category/3913.aspx
    http://www.cnblogs.com/qianlifeng/category/266948.html
    http://www.cnblogs.com/sufei/archive/2010/03/10/1682847.html
    http://tech.ddvip.com/2009-02/1235820652110056.html
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年12月6日 2:18
  • 据我所知可能要利用 SetWindowRgn,SetWindowRect 以及 SetWindowLong 来实现,我只是提供一些思路,详细情况您需要参考 MSDN。
    Mark Zhou
    2010年12月6日 10:23
  • 大家对C++的GUI界面编程应该不会陌生吧!

    本人对一个WINFORM窗口的标题栏进行重绘,也就是通过重写WndProc函数后捕获WM_NCPAINT消息对窗口的标题栏进行重绘。

    2010年12月6日 13:30
  • dear 所以你的说要抓一个不是属于你专案的视窗然后改写他??
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年12月6日 16:33
  • 我写过一个demo,你可以看看http://guangboo.org/2012/12/06/how-to-redraw-caption-and-border-with-csharp
    2013年7月31日 5:26