protected override void WndProc(ref Message m)
{
const int RESIZE_HANDLE_SIZE = 10;
switch (m.Msg)
{
case 0x0084/*NCHITTEST*/ :
base.WndProc(ref m);
if ((int)m.Result == 0x01/*HTCLIENT*/)
{
Point screenPoint = new Point(m.LParam.ToInt32());
Point clientPoint = this.PointToClient(screenPoint);
if (clientPoint.Y <= RESIZE_HANDLE_SIZE)
{
if (clientPoint.X <= RESIZE_HANDLE_SIZE)
m.Result = (IntPtr)13/*HTTOPLEFT*/ ;
else if (clientPoint.X < (Size.Width - RESIZE_HANDLE_SIZE))
m.Result = (IntPtr)12/*HTTOP*/ ;
else
m.Result = (IntPtr)14/*HTTOPRIGHT*/ ;
}
else if (clientPoint.Y <= (Size.Height - RESIZE_HANDLE_SIZE))
{
if (clientPoint.X <= RESIZE_HANDLE_SIZE)
m.Result = (IntPtr)10/*HTLEFT*/ ;
else if (clientPoint.X < (Size.Width - RESIZE_HANDLE_SIZE))
m.Result = (IntPtr)2/*HTCAPTION*/ ;
else
m.Result = (IntPtr)11/*HTRIGHT*/ ;
}
else
{
if (clientPoint.X <= RESIZE_HANDLE_SIZE)
m.Result = (IntPtr)16/*HTBOTTOMLEFT*/ ;
else if (clientPoint.X < (Size.Width - RESIZE_HANDLE_SIZE))
m.Result = (IntPtr)15/*HTBOTTOM*/ ;
else
m.Result = (IntPtr)17/*HTBOTTOMRIGHT*/ ;
}
}
return;
}
base.WndProc(ref m);
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style |= 0x20000; // <--- use 0x20000
return cp;
}
}
적당히 아무대나 복사해서 붙여넣으면 됨.
'개발 > C#' 카테고리의 다른 글
[이미지] C# 이미지 끌어다 놓기(Drag and Drop) (0) | 2018.02.07 |
---|---|
[팁] C# 프로그램 중복실행 방지 (0) | 2018.02.06 |
[그래픽] C# 영역 캡춰하기 (0) | 2018.02.05 |
[팁] 폼 상단바 클릭 이벤트 (0) | 2018.02.02 |
[팁] C# 듀얼모니터에서 현재 실행된 위치에서 새창열기 (0) | 2018.01.29 |
[팁] 디지털 서명 (0) | 2018.01.27 |
[팁] C# 웹브라우저를 설치되어 있는 IE와 동일한 버전으로 자동 설정하기 (0) | 2018.01.26 |
[팁] C# 관리자 권한설정 (0) | 2018.01.26 |