声明一个Rect1;
在它的自绘事件里捕捉,当然,要设ownerdraw为 true;
procedure TForm1.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
begin
  Rect1 := ARect;
end;

解决方案 »

  1.   

    我提供一个思路:在所有菜单的OnDrawItem中处理,得到各个菜单的Rect
    然后将这么多Rect拼起来
    别忘了还有边框好象笨了点……^o^|
      

  2.   

    windindance(风舞轻扬) 
    你比我还笨!!
    用的着得到全部的 ITEM 吗?得到最上面那个和最下面那个不就好了吗???
    笨笨笨笨笨笨笨笨笨!实在是笨!!!
      

  3.   

    声明一个Rect1;
      在它的自绘事件里捕捉,当然,要设ownerdraw为  true;
      procedure  TForm1.N1DrawItem(Sender:  TObject;  ACanvas:  TCanvas;
          ARect:  TRect;  Selected:  Boolean);
      begin
          Rect1  :=  ARect;
      end;你不是要我重画菜单吧
    那不是好辛苦还要首先把菜单里的内容照原样给画出来?