请问怎么改变winform窗体 标题的字体大小 背景 和颜色

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using System.Drawing.Drawing2D;namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {        [DllImport("user32.dll")]
            private static extern IntPtr GetWindowDC(IntPtr hWnd);
            [DllImport("user32.dll")]
            private static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);        private const int WM_NCPAINT = 0x0085;
            private const int WM_NCACTIVATE = 0x0086;
            private const int WM_NCLBUTTONDOWN = 0x00A1;
            protected override void WndProc(ref Message m)
            {
                base.WndProc(ref m);
                Rectangle vRectangle = new Rectangle(3, 3, Width-6, 21);
                switch (m.Msg)
                {
                    case WM_NCPAINT:
                    case WM_NCACTIVATE:
                        IntPtr vHandle = GetWindowDC(m.HWnd);
                        Graphics vGraphics = Graphics.FromHdc(vHandle);
                        vGraphics.FillRectangle(new LinearGradientBrush(vRectangle,
                            Color.Pink, Color.Purple, LinearGradientMode.BackwardDiagonal),
                            vRectangle);                    StringFormat vStringFormat = new StringFormat();
                        vStringFormat.Alignment = StringAlignment.Center;
                        vStringFormat.LineAlignment = StringAlignment.Center;
                        vGraphics.DrawString("Form1", Font, Brushes.BlanchedAlmond,
                            vRectangle, vStringFormat);                    vGraphics.Dispose();
                        ReleaseDC(m.HWnd, vHandle);
                        break;
                    case WM_NCLBUTTONDOWN:
                        Point vPoint = new Point((int)m.LParam);
                        vPoint.Offset(-Left, -Top);
                        if (vRectangle.Contains(vPoint))
                            MessageBox.Show(vPoint.ToString());
                        break;
                }
            }
            public Form1()
            {
                InitializeComponent();
            }        
        }
    }
      

  2.   

    或者参考
    http://www.codeproject.com/KB/dialog/GoogleTalkWindowsForm.aspx