Значит ситуация такая.
Создаю в окне TreeView (Common control 6).
- Код: Выделить всё
hViewTree = CreateWindowEx(0L, WC_TREEVIEW, L"",
WS_VISIBLE | WS_CHILD | WS_BORDER |
TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT,
8, 315, 600, 193,
hWnd, NULL, hInst, NULL);
Нужно чтобы размеры контрола менялись вместе с формой.
Обрабатываю WM_SIZE
- Код: Выделить всё
RECT rct;
GetClientRect(hWnd, &rct);
SetWindowPos(hViewTree, HWND_TOP,
10, ((rect.bottom - rect.top)/2) + 40,
(rect.left + 200), ((rect.bottom - rect.top)/2) - 70, SWP_SHOWWINDOW);
Не работает. GetLastError() показал что "Недопустимый дескриптор окна."
Флаги SetWindowPos перебирал вроде бы в соответствии с MSDN.
Помимо того что контрол не меняет размеры, так появляется куча других глюков. Появляются какие-то левые окна, которые содержат какую-то левую клиентскую область. В общем какой-то бред.
MoveWindow() тоже пробовал - эффект тот же (ну и понятно). Других более подходящих функций не нашел.
Вразумительного ответа не нашел нигде. Вроде такого ни у кого не было.
В чем возможная проблема?
Таким же образом я меняю размеры ListView - все в порядке.