Пожалуйста, посмотрите на этот скриншот:
Как видите, «Исполняемые модули» а также «Потоки» дочерние окна могут свободно бродить в песочнице «Themida» родительское окно, и если они перетаскиваются через край, переполнение просто скрывается. Как я могу создать этот эффект?
Это Многодокументный интерфейс (MDI) приложение. Содержащее окно с темно-серым фоном является окном клиента MDI, а окна внутри являются дочерними окнами MDI.
В течение многих лет Microsoft не поощряла использование MDI, поэтому вы можете подумать дважды об использовании его в новом приложении.
Просто установите стиль окна на WS_CHILD
, и окно будет ограничено родительским прямоугольником клиента.
Вы можете сделать это во время создания окна или после использования SetWindowLongPtr()
а также GetWindowLongPtr()
:
SetWindowLongPtr(hwnd, GWL_STYLE, WS_CHILD | GetWindowLongPtr(hwnd, GWL_STYLE));
Постскриптум Вам не нужно создавать приложение MDI, чтобы иметь такое поведение.