想要在窗体右上角的最小键旁边添加一个按钮
没弄过,如何重绘?谢谢。。X X

解决方案 »

  1.   

    把原本得都隐藏起来、自己拖几个btn上去实现就行了
      

  2.   

    参考此帖
    CC2013高仿QQ界面
      

  3.   

    在网上找到了一段窗体重绘代码,看不懂。。
    谁能帮我解释一下,谢谢        [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((Width - 75) / 2, 3, 75, 25);
                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("About", 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;
                }
            }
      

  4.   


    重写WndProc、在绘制窗口的时候在顶层再画一个按钮、后面是根据拿到已经画好按钮的坐标、在坐标内触发click事件
    这方法不是挺好的么,就用这个