支持,我先给出一个界面设计及换肤的源程序,下载地址http://www.aspxcn.com/dotnetbbs/UpImage/20031021742.rar界面比VS.NET的老套的蓝色标题栏美多了,问题是:1、菜单栏总是显示在标题栏的上方
2、窗体最大化后连WINDOWS的任务栏也给遮住了

解决方案 »

  1.   

    据说是要用到“重绘非客户区”,如 WM_NCPAINT, WndProc 等等。具体就不知道了。
      

  2.   

    见如下代码,可能有用,但不知具体怎么用protected override void WndProc(ref Message m)
    {
    Graphics g;
    RectangleF rectf; Point pt; switch (m.Msg)
    {
    case WMConsts.WM_NCPAINT :
    IntPtr hrgn = m.WParam;
    if ( hrgn != (IntPtr)1 )
    {
    Region rgn = Region.FromHrgn(hrgn);
    g = CreateGraphics();
    rectf = rgn.GetBounds(g);
    PaintNonClientArea(g, rectf);
    }
    else
    {
    g = CreateGraphics();
    rectf = new RectangleF(0,-23, Width, 23);
    PaintNonClientArea(g, rectf);
    g.Dispose();
    }

    //base.WndProc(ref m);
    break; default :
    base.WndProc (ref m);
    break;
    }
    }
      

  3.   

    一般是把this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;去除标题栏和边框后,重载OnPaint()自己画标题栏和边框,问题是不知怎么画在非客户区。如果画在客户区,1、菜单栏总是显示在标题栏的上方
    2、窗体最大化后连WINDOWS的任务栏也给遮住了
      

  4.   

    不知道这个算不算
    http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/csharpui.mspx其实UI可以考虑使用html
      

  5.   

    这是卢彦的“使用Visual C#制作可伸缩个性化窗体”,本人已经根据这篇文章编好了程序。问题是他没有提到怎样画在非客户区。如果个性化窗体画在客户区,1、菜单栏总是显示在标题栏的上方 2、窗体最大化后连WINDOWS的任务栏也给遮住了
      

  6.   

    有个“玉兰时钟”,在google上搜索一下。
      

  7.   

    有个玉兰时钟,在GOOGLE上搜索一下