![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление меню [D7, WinXP]
anod © (2004-04-06 23:37:00)Здраствуйте!
Пишу plugin для winamp: список песен playlist'a в меню.
Добавляю пункт в меню винампа, Обрабатываю событие WM_MENUSELECT,
if (LOWORD(WParam) = 19)and(LParam = hWAMenu) then begin
CreateItems();
end;
по которому создаю динамически массив подменменю.
При наведении мышкой на одино подменю (тоже через WM_MENUSELECT) открывается ещё меню со списком песен.
Как-то запутвнно получилось...
WinAmp Menu(Songs) -> Items from 1 to 31 -> 1. ....
Обнавляю меню так:
procedure CreateItems();
var i,res,n:integer; tmp:string;
begin
for i:= GetMenuItemCount(hPopUpMenu)-1 downto 0 do DeleteMenu(hPopUpMenu,i,MF_BYPOSITION);
res:=SendMessage(plugin.hwndParent, WM_USER, 0, 124);
...
SetLength(hItemsMenu,n+1);
for i:= 0 to n-1 do begin
hItemsMenu[i]:=CreateMenu();
tmp:= 'Items from '+IntToStr(i*30+1)+' to '+IntToStr(i*30+30);
AppendMenu(hPopUpMenu,MF_STRING or MF_POPUP,hItemsMenu[i], PCHAR(tmp));
end;
end;
Так как много песен, то обновление меню происходит очень заметно.
Как можно ускорить это?
К тому же хотелось бы, чтобы обновление происходило только при наведение на пункт в предыдущем меню, иногда вылезает глюк, когда при перемещении мышью а меню, оно начинает обновляться...
Спсибо.
anod (2004-04-07 15:23:00) [1]Люди, помогите избавиться от этого глюка:
обновление происходило только при наведение на пункт в предыдущем меню, иногда вылезает глюк, когда при перемещении мышью а меню, оно начинает обновляться...
anod (2004-04-06 23:38:00) [2]Сколько ошибок :(