Минус только панель задач? Это может быть не совсем то, что вы хотите. На краях экрана могут быть другие окна, которые предназначены для «вырезания» областей рабочего стола. Также обратите внимание, что иногда высота панели задач не имеет значения, например, когда она пристыкована к левой или правой части экрана.
Galwegian показал, как получить высоту панели задач, но если вы действительно ищете полезную область рабочего стола, используйте вместо этого функцию SystemParametersInfo
с флагом spi_GetWorkArea
. Он покажет вам область рабочего стола, исключая все панели инструментов рабочего стола. MSDN рекомендует, чтобы, если вас заинтересовало пространство, доступное для чего-либо, кроме основного монитора, вам следует вместо этого позвонить GetMonitorInfo
; он заполняет запись, и одно из полей предназначено для рабочей области монитора.
Я собираюсь поддержать идею, что вы, возможно, действительно просто хотите максимизировать свое окно. Если вы уже сделали это, и вы хотите знать, сколько места вы занимаете, то получите текущий размер вашего окна, а затем вычтите размеры рамки вашего окна (которые «заправляются под края» рабочий стол, когда окно развернуто). Для этого вы можете использовать GetSystemMetrics
с флагами sm_CXFrame
и sm_CYFrame
.