2012-03-17 7 views

Odpowiedz

16

Jak o GetScrollBarInfo z OBJID_HSCROLL lub OBJID_VSCROLL

Jeśli idObject jest OBJID_CLIENT i okno określony przez HWND nie jest kontrola paska przewijania System, system wysyła wiadomość SBM_GETSCROLLBARINFO do okna, aby uzyskać pasek przewijania Informacja. Dzięki temu GetScrollBarInfo może działać na niestandardowej kontrolce, która naśladuje pasek przewijania. Jeśli okno nie obsługuje komunikatu SBM_GETSCROLLBARINFO, funkcja GetScrollBarInfo kończy się niepowodzeniem.

można przetestować rgstate w strukturze SCROLLBARINFO, istnieje STATE_SYSTEM_INVISIBLE flaga tam.


Innym możliwym sposobem jest przetestowanie GetWindowLong(hWnd, GWL_STYLE) and (WS_HSCROLL or WS_VSCROLL) <> 0

+0

wygląda obiecująco, ale nie działa z Windows Internet Explorer lub aplikacji explorer.exe (Windows 7) – Salvador

+1

wierzę, że 'Explorer.exe' zawiera kontroluje 'SysTreeView32' i' SysListView32' (oba zwracają poprawne 'WS_HSCROLL' lub' WS_VSCROLL') z 'GetWindowLong'. Używam Spy ++, aby potwierdzić style okna. nie testowałem jednak za pomocą 'GetScrollBarInfo'. – kobik

Powiązane problemy