Registriert seit: 25. Okt 2005
Ort: Schmon
15 Beiträge
Delphi 2005 Architect
|
Re: Transparente BMP mit SetMenuItemBitmaps
31. Mär 2008, 16:39
Hi!
Klappt auch nicht
Ich habe jetzt eine Notlösung gefunden, aber Perfekt ist die leider nicht weil das Bild nicht wirklich Transparent ist. Ausserdem geht das so nur mit 16 Farben
Delphi-Quellcode:
procedure TToolbar.ShowSearchMain(var Message: TMessage);
var
pt: TPOINT;
rect: TRect;
hPopup: HMENU;
hBitmap: THandle ;
cm : array[0..3]of TColorMap;
begin
SendMessage(hToolbarMain, TB_GETITEMRECT, 3, LPARAM(@Rect));
pt.x := Rect.Right;
pt.y := Rect.Bottom - 1;
Windows.ClientToScreen(hToolbarMain, pt);
if pt.x < 0 then pt.x := 0;
begin
hPopup := CreatePopupMenu;
cm[0].cFrom := $00ff00ff;
cm[0].cTo := GetSysColor(COLOR_3DFACE);
hBitmap := CreateMappedBitmap( hInstance,101,0,@cm[0],length(cm));
AppendMenu(hPopup, MF_STRING, IDM_SEARCH1, PChar('SUCHTYPE 1'));
SetMenuItemBitmaps(hPopUp, 0, MF_BYPOSITION, hBitmap, hBitmap);
AppendMenu(hPopup, MF_SEPARATOR, 0, '');
AppendMenu(hPopup, MF_STRING, IDM_SEARCH2, PChar('SUCHTYPE 2'));
TrackPopupMenu(hPopup, TPM_CENTERALIGN or TPM_LEFTBUTTON,
pt.x, pt.y, 0, hToolbarMain, nil);
DestroyMenu(hPopup);
end;
end;
Jens Lutterklas
|
|
Zitat
|