-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が自分自身を世話するようにします。 –