Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Получение координат кнопки тулбара   Найти похожие ветки 

 
Лёля   (2006-12-18 13:09) [0]

Доброго времени суток!
Мне необходимо получить координаты кнопки тулбара. Делаю так:

var
 hToolBar: HWND;
 r: trect;
 
...

 hToolBar := FindWindowEx(hWindow, 0, "TToolBar", nil);
 if SendMessage(hToolBar, TB_GETITEMRECT, 3, lParam(@r)) <> 0 then
   ShowMessage(Format("%d %d", [r.Left, r.Top]));


По идее, в случае успеха SendMessage возвращает ненулевой результат (и, насколько я понимаю, заполненную структуру TRect). Она его и возвращает. Вот только значения TRect не изменились. Что же делать? Дескриптор окна тулбара найден правильно и кнопка с индексом 3 существует тоже.


 
Rouse_ ©   (2006-12-18 13:11) [1]

Тулбар находиться в твоем приложении или в чужом?


 
Лёля   (2006-12-18 13:18) [2]

в чужом, конечно...


 
Rouse_ ©   (2006-12-18 14:31) [3]

А зачем тогда передаешь адрес структуры TRect (в LParam) расположенной в таоем адресном пространстве, а не в чужом?


 
Лёля   (2006-12-18 15:57) [4]

а.. спасибо большое, разобралась, мой кусочек кода:


var
 r: TRect;
 dwQRDpid: DWORD;
 hProcess:  THandle;
 addr:      pointer;
 count:    cardinal;
 xPosTB, yPosTB: Integer;  
...
 hWindow := FindFirstQrdViewer;
 hToolBar := FindWindowEx(hWindow, 0, "TToolBar", nil);

 GetWindowThreadProcessId(hWindow, dwQRDpid);
 hProcess := OpenProcess(PROCESS_VM_READ or PROCESS_VM_OPERATION, false, dwQRDpid);
 addr := VirtualAllocEx(hProcess, @r, SizeOf(r), MEM_COMMIT, PAGE_READWRITE);
 SendMessage(hToolBar, TB_GETITEMRECT, 3, lParam(addr));
 ReadProcessMemory(hProcess, addr, @r, SizeOf(r), count);
 VirtualFreeEx(hProcess, addr, SizeOf(r), MEM_RELEASE);
 xPosTB := r.Left  + 1;
 yPosTB := r.Top + 1;
 CloseHandle(hProcess);
 SendMessage(hToolBar, WM_LBUTTONDOWN, MK_LBUTTON, MakeLParam(xPosTB, yPosTB));
 SendMessage(hToolBar, WM_LBUTTONUP, 0, MakeLParam(xPosTB, yPosTB));



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.05 c
2-1177672097
Perf2k2
2007-04-27 15:08
2007.05.20
Строка из ListView передается не полностью


15-1177326834
Tonich
2007-04-23 15:13
2007.05.20
Спутники(характеристики)


2-1178295500
Mihail07
2007-05-04 20:18
2007.05.20
TSaveDialog, TRichEdit


1-1174481739
kilya
2007-03-21 15:55
2007.05.20
MDI формы


2-1178205311
Человек
2007-05-03 19:15
2007.05.20
Поиск