Нет способа повлиять на поведение метода Cascade
, который реализуется путем отправки сообщения WM_MDICASCADE
в окно контейнера MDI, ClientHandle
.
Теперь, глядя на WM_MDICASCADE
, он имеет возможность пропустить отключенных детей MDI от каскадирования. Таким образом, вы можете отключить определенные дочерние окна, отправить сообщение WM_MDICASCADE
самостоятельно, а затем снова включить дочерние окна. Я не пытался это сделать, но мне кажется, что это сработает.
Другой вариант - реализовать собственный метод позиционирования дочернего элемента MDI. Это на самом деле относительно легко сделать. Я бы посоветовал вам обратиться к исходному коду проекта Wine , чтобы понять, как это сделать. Файл ключа mdi.c
в user32
DLL.