如何OwnerDraw PopupMenuItem CheckMark

时间:2013-10-08 18:34:33

标签: delphi delphi-xe4

如何在PopupMenuItem上标记一个复选标记?

我试过了:

var
  iLeftPos: Integer;
  iTopPos: Integer;
  iText: string;
  iState: integer;
  iGlyphRect: TRect;
begin
   iTopPos := ARect.Top + (ARect.Bottom - ARect.Top -
    ACanvas.TextHeight('W')) div 2;

   { Draw checkmark }
   iGlyphRect := Rect(0, iTopPos, 20, iTopPos + 20);
   if Touch2.Checked then
   begin
     iState := iState or DFCS_MENUCHECK;
     DrawFrameControl(ACanvas.handle, iGlyphRect, DFC_POPUPMENU, iState);
   end;
end;

但它是这样的: enter image description here

1 个答案:

答案 0 :(得分:0)

这解决了这个问题。谢谢TLama。

if Touch2.Checked then
begin
  iState := iState or DFCS_MENUCHECK;
  DrawFrameControl(ACanvas.handle, iGlyphRect, DFC_MENU, iState);
end;

enter image description here