Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Размеры прокрутки [D7, WinXP]


JanMihail ©   (2007-07-06 16:55:00) 

Как определить размеры полосы прокрутки? Т.е. ширину и высоту прокрутки в определенном окне. Известен HWND окна.
Пробовал так:
pInfo: TScrollBarInfo;
...
 GetScrollBarInfo(Handle, Handle, pInfo);
 Caption := IntToStr(pInfo.rcScrollBar.Right - pInfo.rcScrollBar.Left);

По коду в Caption формы должна записаться ширина прокрутки, но почему то всегда возвращается 0.
Помогите пожалуйста!!!


hommRO   (2007-07-06 22:11:00) [1]

> [6] Dib@zol ©   (06.07.07 17:57)
> Через GetSystemMetrics можно получить только одну из этих
> величин для данного скроллбара.

Всегда считал, что вторую можно получить с помощью банальной эрудиции и нехитрой математики.


JanMihail   (2007-07-06 18:14:00) [2]

СПАСИБО clickmaker!!!


Dib@zol   (2007-07-06 17:57:00) [3]


> Юрий Зотов ©   (06.07.07 17:47) [5]
> ширину и высоту прокрутки


Через GetSystemMetrics можно получить только одну из этих величин для данного скроллбара. => не катит.


Юрий Зотов   (2007-07-06 17:47:00) [4]

GetSystemMetrics?


clickmaker   (2007-07-06 17:33:00) [5]


> GetScrollBarInfo(Handle, Handle, pInfo);


pInfo.cbSize := Sizeof(TScrollBarInfo);
GetScrollBarInfo(Handle, OBJID_VSCROLL, pInfo);


Dib@zol   (2007-07-06 17:30:00) [6]

rcScrollBar: TRect;
Нет ну а что это по-твоему? Хочешь сказать, скроллбар не окно, а Handle-это HWND родителя? Тогда вызывай FindWindowEx(Handle, 0, 'SCROLLBAR', nil) и уже у него получай размеры по методу из [1].


JanMihail   (2007-07-06 17:15:00) [7]


> Dib@zol ©   (06.07.07 17:00) [1]

Это не то. Мне не нужны размеры окна, мне нужны размеры прокрутки(ScrollBar)


Dib@zol   (2007-07-06 17:00:00) [8]

Должно прокатить...

function GetSBDimens(W:HWND):TRect;
var wp : WINDOWPLACEMENT;
begin
 GetWindowPlacement(W, @wp);
 Result:=wp.rcNormalPosition;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо