2009-05-13 4 views
1

Легко получить ограничивающий прямоугольник для всех видимых окон на экране. Также легко определить, является ли какое-либо окно знаковым или нет.Как получить минимизированные границы окна?

Но для минимизированных окон верхний и левый указаны как -32000 из User32.GetWindowInfo.rcWindow. Я просмотрел весь API и не могу найти вызов, чтобы вернуть границы, которые восстановит окно, если бы оно было нажато или переключено на.

Спасибо за любые указатели.

ответ

1

Заканчивать User32.GetWindowPlacement

+0

Кажется, работает большое спасибо ... для некоторых владельцев обращается окна, как WinAmp, который сообщает свои границы, как {X = 3806, за исключением , Y = -30000, Ширина = 4081, Высота = -29884} Любая идея, как получить фактические оценки для нее? – 2009-05-13 14:53:17

+0

Hm, проверьте «невозможные» значения и вызовите GetWindowRect/send WM_NCCALCSIZE - единственное решение, которое приходит на ум. – Rune

0

Для C/C++:

WINDOWPLACEMENT wp; 
::ZeroMemory(&wp, sizeof(WINDOWPLACEMENT)); 
::GetWindowPlacement(hWnd, &wp); 
Смежные вопросы