Tpopupmenu为每个菜单项加上图标,鼠标移上时有蓝色焦点条,如果让蓝色条不在图标区显示?也就是蓝色条从文字处开始绘制?

解决方案 »

  1.   

    自画!{
    popupmenu1.Images := ImageList1;
    popupmenu1.OwnerDraw := True;
    popupmemu1.autohotkeys := maManual;
    }//自画popupmenu1的菜单项a1,在a1的OnDrawItem事件。
    procedure TForm1.a1DrawItem(Sender: TObject; ACanvas: TCanvas;
      ARect: TRect; Selected: Boolean);
    var
      R: TRect;
    begin
      R := ARect;
      R.Left := R.Left + 16;
      ImageList1.Draw(ACanvas, 2, 2, 0);//画图片
      ACanvas.FillRect(R);//填充背景色
      ACanvas.TextOut(R.Left+2, 2, TMenuItem(Sender).Caption);//画文字
    end;