使用图片框控件移动无边框表单

时间:2013-06-16 21:09:45

标签: c# forms picturebox

我有一个没有边框的winform。我添加了一个picturebox控件并将其设置为父容器中的Dock。我想做两件事,当我点击图片框中的任何地方时,我希望能够将整个表格拖动到屏幕上的任何位置,并希望能够通过拖动右下角来调整表格大小。

如果我只有表格,我可以做到以上但由于图片框填满整个表格,我不知道该怎么做。

使表单有效的代码:

    private const int WM_NCHITTEST = 0x84;
    private const int HTCLIENT = 0x1;
    private const int HTCAPTION = 0x2;


    protected override void WndProc(ref Message message)
    {
        base.WndProc(ref message);

        if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
        {
            message.Result = (IntPtr)HTCAPTION;

            int x = (int)(message.LParam.ToInt64() & 0xFFFF);
            int y = (int)((message.LParam.ToInt64() & 0xFFFF0000) >> 16);
            Point pt = PointToClient(new Point(x, y));
            Size clientSize = ClientSize;
            if (pt.X >= clientSize.Width - 16 && pt.Y >= clientSize.Height - 16 && clientSize.Height >= 16)
            {
                message.Result = (IntPtr)(IsMirrored ? htBottomLeft : htBottomRight);
                return;
            }

        }


   }

0 个答案:

没有答案