| else if odSelected in State then begin BrushColor := MainMenuSelectedBackColor; PenColor := MainMenuSelectedBorderColor; end else begin BrushColor := MainMenuBackColor; PenColor := MainMenuBackColor; if TMenuItem(Sender).Caption = '帮助(&H)' then ARect.Right := ARect.Right + 1600; end; ACanvas.Brush.Color := BrushColor; ACanvas.Pen.Color := PenColor; //ACanvas.FillRect(ARect); ACAnvas.Rectangle(ARect); ACanvas.Brush.Style := bsClear; //绘出文字 if odGrayed in State then ACanvas.Font.Color := clBtnShadow else ACanvas.Font.Color := clBlack; SetRect(TextRect, ARect.left+10, ARect.top+3, ARect.right, ARect.bottom); DrawText(ACanvas.Handle, PChar(TMenuItem(Sender).Caption), Length(TMenuItem(Sender).Caption), TextRect, DT_LEFT); end; //绘制子菜单内容 procedure DrawSubItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState); const SubMenuBackColor : TColor = $F7F8F9; SubMenuBorderColor : TColor = $DEEDEF; SubMenuSelectedBackColor : TColor = $EED2C1; SubMenuSelectedBorderColor: TColor = $C08000; SubMenuLineColor : TColor = $C8D0D4; //SubMenuHotLightBorderColor: TColor = $C08000; SubMenuGrayedBackColor : TColor = $F7F8F9;//$DEEDEF; var BrushColor, PenColor: TColor; TextRect: TRECT; str: String; ImageList: TCustomImageList; begin if (odGrayed in State) and not(TMenuItem(Sender).IsLine) then begin BrushColor := SubMenuGrayedBackColor; {if odSelected in State then PenColor := SubMenuSelectedBorderColor else} |