Вы можете отправлять WM_SETREDRAW
сообщения в ClientHandle MainForm, одно с wParam, установленным на False, а затем с wParam, установленным в True, чтобы избежать мерцания при настройке дочернего окна MDI, например:
Delphi:
SendMessage(Application.MainForm.ClientHandle, WM_SETREDRAW, False, 0);
try
Child := TChildForm.Create(Self);
Child.Left := ...;
Child.Top := ...;
Child.Show;
finally
SendMessage(Application.MainForm.ClientHandle, WM_SETREDRAW, True, 0);
InvalidateRect(Application.MainForm.ClientHandle, nil, True);
end;
C ++:
SendMessage(Application->MainForm->ClientHandle, WM_SETREDRAW, FALSE, 0);
try
{
Child = new TChildForm(this);
Child->Left = ...;
Child->Top = ...;
Child->Show();
}
__finally
{
SendMessage(Application->MainForm->ClientHandle, WM_SETREDRAW, TRUE, 0);
InvalidateRect(Application->MainForm->ClientHandle, NULL, TRUE);
}