Следующий код в процедуре окна, кажется, обрабатывает случай перетаскивания пользователем края / угла окна:
case WM_SIZING:
RECT &rc = *(LPRECT) lParam;
RECT windowRect;
GetWindowRect(hwnd, &windowRect);
rc = windowRect;
return 0;
Я пока не нашел ничего, что помешало бы системе изменить размер окна при мозаичном / каскадном расположении окон. Я надеялся, что следующее поможет, но, похоже, это не так:
case WM_SIZE:
return TRUE;
Полагаю, я могу найти аналогичную меру для других случаев, но по крайней мере мне нужно знать исчерпывающий список сообщений, которые могут привести к изменению размера окна.
Кроме того, хотя это действительно препятствует изменению размера окна, я бы предпочел запретить пользователю даже инициировать изменение размера, чем, по-видимому, позволить ему изменять размер и затем отказаться от этого.