Einzelnen Beitrag anzeigen

bobo220673

Registriert seit: 25. Okt 2005
Ort: Schmon
15 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Transparente BMP mit SetMenuItemBitmaps

  Alt 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
  Mit Zitat antworten Zitat