Как получить размер окна

Я хочу выделить память для массива точек.

И я хочу зависеть от размера экрана, чтобы я мог правильно рисовать.

Но я не знаю размер экрана, кроме как в функции onPaint() для вызова GetClientSize().

И я обнаружил, что результат GetClientSize() и GetSize() настолько отличается, что я не могу понять, какая между ними связь.

В любом случае, я могу узнать размер, прежде чем вызывать функцию рисования???


person james    schedule 28.10.2012    source источник


Ответы (2)


Размер клиента - это область рисования. Размер окна , размер клиента + размер заголовка + другой размер кадра. все :)

person alan_dw    schedule 28.10.2012

Вы можете обработать EVT_SIZE, чтобы получать уведомления об изменении размера, но обычно это даже не требуется: вы просто сравниваете возвращаемое значение GetClientSize() в своем обработчике EVT_PAINT с ранее закэшированным значением и обновляете последнее при необходимости.

Вам нужно использовать размер клиента, который представляет собой размер области окна, на котором вы рисуете, а не полный размер, который также включает меню/инструменты/панели состояния и оформление окна.

person VZ.    schedule 28.10.2012