如何在PopupMenuItem上擁有一個複選標記?How to OwnerDraw PopupMenuItem CheckMark
我嘗試這樣做:
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;
但繪本:
的'iState'變量可能在你的代碼的隨機值。但無論如何,您可以爲DFC_MENU類型而不是DFC_POPUPMENU繪製該複選框。不知道爲什麼,但是'DFC_POPUPMENU'類型的狀態將'DrawFrameControl'呈現爲Windows 7機器上的系統菜單按鈕(最小化,最大化,關閉和幫助圖標)的圖標。在你的屏幕截圖上只是最小化圖標。 – TLama