#23 Ошибка? SetMenuItemInfo() + MFT_OWNERDRAW в WM6.1

open
nobody
None
5
2009-11-02
2009-11-02
mdw
No

Здравствуйте, Юрий.
Столкнулся со следующим багом. Проявился на WM6.1 (wm2003, WM5 все в порядке).
При установке TMenu.OwnerDraw:= True, ничего не происходит. Устанавливается только для сепараторов.
Покопался в инете, получается что SetMenuItemInfo(..) не отрабатывает с MFT_OWNERDRAW в WM6.
http://social.msdn.microsoft.com/Forums/en-US/vssmartdevicesnative/thread/52c43252-f9f5-4f78-857b-0d8c826b05ed/

Пока сделал так:
procedure TMenu.SetOwnerDraw( Value: Boolean );
var Vis: Boolean;
begin
FOwnerDraw := Value;
Vis:= Visible;
if Vis then begin
Visible:= False;
Visible:= True;
end;
end;

Т.е. Пункт меню тупо пересоздается. Хотя, по хорошему, нужно FOwnerDraw устанавливать еще до создания пункта меню. Еще один параметр добавить(OwnerDraw)? Не знаю... На Ваше усмотрение.
Но хот ябы так как я сделал, нужно поправить, иначе не совместимо получается с WM6.

Discussion