Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизSysTreeview Найти похожие ветки
← →
Marser © (2004-06-30 00:27) [0]Как работается с представителями этого класса?
Ежели я правильно понял WinSight, то посредством событий группы lb_
Однако никакой реакции не наблюдается. Хендл определен верно, группа WM_ проходит.
lb_ ли?
← →
Игорь Шевченко © (2004-06-30 00:32) [1]F1: TreeView Messages, TVM_xxxxxxxxx
← →
Marser © (2004-06-30 00:36) [2]Значицца, TVM_... Будем искать.
Спасибо!
← →
MBo © (2004-06-30 08:39) [3]небольшое уточнение - SysTreeview в твоей программе или в чужой?
← →
Marser © (2004-06-30 21:01) [4]
> MBo © (30.06.04 08:39) [3]
> небольшое уточнение - SysTreeview в твоей программе или
> в чужой?
В чужой конечно.
← →
MBo © (2004-07-01 09:40) [5]>В чужой конечно.
Тогда для получения большей части информации (а именно, для сообщений, которые требуют передачи адреса (структуры, строки)) придется внедряться в чужой процесс. Пример для SysListView есть у Рихтера
← →
Marser © (2004-07-01 19:53) [6]
> MBo © (01.07.04 09:40) [5]
> >В чужой конечно.
> Тогда для получения большей части информации (а именно,
> для сообщений, которые требуют передачи адреса (структуры,
> строки)) придется внедряться в чужой процесс. Пример для
> SysListView есть у Рихтера
Ой мляя...
Значит просто так с TVM_SELECTITEM не поработаешь?
← →
VMcL © (2004-07-01 20:16) [7]>>Marser © (01.07.04 19:53) [6]
С TVM_SELECTITEM должно получиться и без внедрения, если знаешьLPARAM) lParam // = (LPARAM) (HTREEITEM) hitem;
Внедрение делается, если нужно передавать адрес данных, например, адрес строки-заголовка.
← →
Marser © (2004-07-01 20:39) [8]
> (HTREEITEM) hitem;
Вот именно с этой хренью и возникает проблема. Чтение исходников ничего не даёт. Как заполнить эту структуру, если она не описана?
← →
Marser © (2004-07-03 00:45) [9]up
Или предложение MBO и без иных варинтов?
← →
Marser © (2004-07-04 19:55) [10]Задание то же, что и http://delphimaster.net/view/8-1088269863/
← →
Marser © (2004-07-05 01:16) [11]Проблема решена! Прокрутку на i корневых пунктов я выполнил таким образом:
procedure TForm1.Button1Click(Sender: TObject);
var
ht:HTREEITEM;
i:byte;
begin
WinExec("control.exe mmsys.cpl,@1",SW_SHOWNORMAL);
sleep(50);
h:=FindWindowEx(FindWindowEx(FindWindow(nil,"Свойства: Звук"),0,
nil,"Звуковое сопровождение событий"),
0,"SysTreeView32",nil);
sleep(50);
ht:=TreeView_GetNextItem(h,TreeView_GetSelection(h),TVGN_NEXT);
for i:=1 to CB1.ItemIndex do
ht:=TreeView_GetNextItem(h,ht,TVGN_NEXT);
TreeView_SelectItem(h,ht);
end;
Кривовато и работает, по видимому, только в Win98, но работает! Для других ОС, правда, перенастроить не составит особого труда. И в чужой процес лезть не пришлось :-) А то от примеров Рихтера иногда мурашки по коже. У VMcL на "ламерском" сайте, конечно, с этим попроще...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.044 c