Я делаю Windows Winform с пользовательским изменяющим размер (без рамки). Я рисую ручку изменения размера и обрабатываю некоторые сообщения в WndProc. Просто напоследок: я не знаю, что происходит внутри WndProc, я просто знаю, что он делает то, что я хочу (я вставил фрагмент кода из какого-то примера).
Теперь я хочу добавить панель, прикрепленную к нижней части моей формы. Однако, когда я делаю это, моя функциональность по изменению размера исчезает. Есть ли какой-нибудь способ восстановить эту функциональность без необходимости программировать собственный ресайзер.
Я думаю, что функциональность потеряна, потому что она обрабатывает изменение размера только в главной форме, а не в любом из ее элементов управления.
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x84)
{ // Trap WM_NCHITTEST
Point pos = new Point(m.LParam.ToInt32());
pos = this.PointToClient(pos);
if (
pos.X >= this.ClientSize.Width - cGrip &&
pos.Y >= this.ClientSize.Height - cGrip)
{
m.Result = (IntPtr)17; // HTBOTTOMRIGHT
return;
}
}
base.WndProc(ref m);
}
Как я уже говорил в предыдущих вопросах, я совсем не опытный программист на C #. У меня очень мало опыта, и методы, которые я использую, вероятно, могут быть безумно оптимизированы, поэтому очень хотелось бы получить подробное описание вашего ответа.