Einzelnen Beitrag anzeigen

NeoXan
(Gast)

n/a Beiträge
 
#1

PopUpMenu OwnerDraw feuert zu spät... :)

  Alt 28. Dez 2005, 02:01
Also ich habe unter anderem folgenden Code in meiner OwnerDraw Procedure
Delphi-Quellcode:
  // Draw menu border
  mWnd := WindowFromDC(ACanvas.Handle);

  if mWnd <> Self.Handle then begin
    cTemp := TCanvas.Create();
    cTemp.Handle := GetDC(0);

    Windows.GetWindowRect(mWnd, rMenu);

    cTemp.Brush.Color := $00DF967A;
    cTemp.FrameRect(rMenu);

    InflateRect(rMenu, -1, -1);
    cTemp.Brush.Color := $00FFFFFF;
    cTemp.FrameRect(rMenu);

    InflateRect(rMenu, -1, -1);
    cTemp.FrameRect(rMenu);

    ReleaseDC(0, cTemp.Handle);
    cTemp.Free();
  end;
Das Problem ist nur, dass mein PopUpMenu erst umrandet wird, wenn ich über einen Eintrag fahre. Nicht aber wenn es aufgeht :/

EDIT:
ach ja, wenn ich z.B. jetzt eine ShowMessage einfüge, und die Box mit enter bestätige, dann klappt es?!
Delphi-Quellcode:
procedure TfrmMain.btnMenuMouseEnter(Sender: TObject);
  x := (Sender as TButton).Left + frmMain.Left;
  y := (Sender as TButton).Top + frmMain.Top + (Sender as TButton).Height;
  ShowMessage('H');
  pop.Popup( x , y );
  Mit Zitat antworten Zitat