绘制MS Forms边框

时间:2012-08-09 01:36:10

标签: c# winforms forms

我在这里遇到了一些问题。我正在尝试在整个屏幕上绘制一些东西,我有一个没有可见边框的全屏形式,但是,我无法在边框位置绘制,因此将有大约20多个像素空间,其上没有绘制任何内容边缘。我想我可以扩展窗口大小,使其从底部和右侧越过屏幕,但是你不能将位置设置为小于0,0所以顶部和左边框仍然阻挡我的绘图。

简单说明:如何在边框上绘图?

1 个答案:

答案 0 :(得分:1)

一种方法是完全摆脱边界。您可以根据需要绘制自己的模拟边框。

为此,请将ControlBox属性设置为 false 。将表单的Text属性设置为string.Empty。将边框设置为FixedDialog以使窗体无法显示。

为了仍然可以移动表单,您必须覆盖WndProc,如下所示:

protected override void WndProc(ref Message message)
{
    switch (message.Msg)
    {
      case 0x84: 
          message.Result = new IntPtr(0x2);
          return;
    }

    base.WndProc(ref message);
}

该代码欺骗Windows认为鼠标点击非客户区实际上是在标题栏上。

请参阅http://msdn.microsoft.com/en-us/library/ms645618%28VS.85%29.aspx