现在的位置: 首页 > 综合 > 正文

c#利用消息给无边框窗体改变大小

2013年11月26日 ⁄ 综合 ⁄ 共 962字 ⁄ 字号 评论关闭

const int WM_NCHITTEST =
0x0084
;

const int HTLEFT =
10;
const int HTRIGHT = 11;
const int HTTOP = 12;
const int HTTOPLEFT = 13;
const int HTTOPRIGHT = 14;
const int HTBOTTOM = 15;
const int HTBOTTOMLEFT =
0x10
;
const int HTBOTTOMRIGHT =
17
;

protected override void
WndProc(ref
Message
m)
{
   base.WndProc(ref m);
   switch (m.Msg)
    {
       case WM_NCHITTEST:
           
Point
vPoint = new
Point
((int)m.LParam
&
0xFFFF
                (int)m.LParam
>> 16
& 0xFFFF);
            vPoint
=
PointToClient(vPoint);
           if (vPoint.X
<= 5)
               if (vPoint.Y
<=
5)
                    m.Result
= (IntPtr)HTTOPLEFT;
               else if (vPoint.Y
>=
ClientSize.Height
-
5)
                    m.Result
= (IntPtr)HTBOTTOMLEFT;
               else m.Result
=
(IntPtr)HTLEFT;
           else if (vPoint.X
>= ClientSize.Width
- 5)
               if (vPoint.Y
<=
5)
                    m.Result
= (IntPtr)HTTOPRIGHT;
               else if (vPoint.Y
>=
ClientSize.Height
-
5)
                    m.Result
= (IntPtr)HTBOTTOMRIGHT;
               else m.Result
=
(IntPtr)HTRIGHT;
       

抱歉!评论已关闭.