-1
나는 사용자 정의 컨트롤을 사용했다. 나는 또한 사용자 정의 컨트롤에 최소 크기를 설정했습니다. 크기를 조정할 수 있도록 다음 코드를 사용했습니다.크기 조정을 제한하기 위해 최소 크기를 설정하는 방법은 무엇입니까?
private const int cGrip = 16; // Grip size
private const int cCaption = 32; // Caption bar height;
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x84)
{
// Trap WM_NCHITTEST
System.Drawing.Point pos = new System.Drawing.Point(m.LParam.ToInt32() & 0xffff, m.LParam.ToInt32() >> 16);
pos = this.PointToClient(pos);
if (pos.Y < cCaption)
{
m.Result = (IntPtr)2; // HTCAPTION
return;
}
if (pos.X >= this.MinimumSize.Width - cGrip && pos.Y >= this.MinimumSize.Height - cGrip)
{
m.Result = (IntPtr)17; // HTBOTTOMRIGHT
return;
}
}
base.WndProc(ref m);
}
그러나 최소 크기 설정에 실패했습니다. 0.please 크기로 크기 조정은 아래 이미지를 참조하십시오. 크기를 제한하기 위해 최소 크기를 설정하고 싶습니다. 어떤 해결책을 제안 해 주시겠습니까?
왜 'UserControl'디자이너에서 설정하지 않았습니까? – C4u
WM_NCHITTEST는 최소 크기를 설정하지 않습니다. WM_GETMINMAXINFO에 대한 응답으로이를 수행해야합니다. 또는 WinForms에서 [MinimumSize 속성] (https://msdn.microsoft.com/en-us/library/system.windows.forms.control.minimumsize.aspx)을 설정하면됩니다. WM_NCHITTEST가 스스로 처리하도록하십시오. –