GetSystemMetrics против SystemParametersInfo
Мне нужно было узнать высоту экрана, чтобы изменить размер диалога. я звоню GetSystemMetrics
с SM_CYFULLSCREEN
и я получаю определенное число (1028 в моем случае). По MSDN:
Чтобы получить координаты части экрана, не скрытой системной панелью задач или панелями инструментов рабочего стола приложения, вызовите
SystemParametersInfo
функция сSPI_GETWORKAREA
значение.
я звонил SystemParametersInfo
а также, чтобы увидеть, что он возвращает, и я получаю другое значение для высоты, 1050. При шпионе область без панели задач действительно имеет высоту 1050. Кто-нибудь знает, почему разные высоты? Спасибо
1 ответ
Из документов MSDN для SM_CYFULLSCREEN:
Высота клиентской области для полноэкранного окна на мониторе основного дисплея в пикселях.
Соответствующие детали выделены жирным шрифтом, клиентская область является частью окна без границ и строки заголовка. Поэтому он существенно меньше фактической высоты основного экрана. Возможно, вы хотели использовать SM_CYSCREEN. SPI_GETWORKAREA возвращает доступное пространство для всего окна, внешний размер, который вы передадите CreateWindowEx().