Надо задать клиентскую область конкретного размера. Как бы посчитать, какого размера надо сделать окно? Может, есть какая-то функция? Или самому возится считать, есть ли заголовки, есть ли клиент эдж, есть ли толстая рамка окна для ресайза или нет, и тд и тп?
Здравствуйте, Marty, Вы писали:
M>Надо задать клиентскую область конкретного размера. Как бы посчитать, какого размера надо сделать окно? Может, есть какая-то функция? Или самому возится считать, есть ли заголовки, есть ли клиент эдж, есть ли толстая рамка окна для ресайза или нет, и тд и тп?
Если окно по своему обрабатывает WM_NCCALCSIZE, то такой подход не пройдет.
AdjustWindowRect только для простых случаев, а еще там костыли ...ForDpi добавили...
Здравствуйте, Marty, Вы писали:
M>Надо задать клиентскую область конкретного размера. Как бы посчитать, какого размера надо сделать окно? Может, есть какая-то функция? Или самому возится считать, есть ли заголовки, есть ли клиент эдж, есть ли толстая рамка окна для ресайза или нет, и тд и тп?
Я бы создавал невидимое окно с дефолтным размером.
Потом GetWindowRect + GetClisntRect + ClientToScreen и получаем все четыре отступа клиентской части.
Далее вычисляем необходимый window rect и SetWindowPos c SWP_SHOWWINDOW.
Такой подход, скорее всего, учтет все нюансы, даже самописный обработчик WM_NCCALCSIZE.