![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размеры прокрутки [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;