rzpagecontrol页头如何右键弹出菜单呢?

解决方案 »

  1.   

    本来就是很简单的问题啊 页头  放两个PopupMenu分别是1 和 2页头PopupMenu属性为 PopupMenu1  自己添加菜单分页PopupMenu属性为 PopupMenu2  将 PopupMenu2菜单设为空的
      

  2.   

    呵呵,主要是RZPAGECONTROL页头坐标位置不知如何确定。
      

  3.   

    本来就是很简单的问题啊 页头  放两个PopupMenu分别是1 和 2 页头PopupMenu属性为 PopupMenu1  自己添加菜单 分页PopupMenu属性为 PopupMenu2  将 PopupMenu2菜单设为空的 就是这样。都是这么做的至少我
      

  4.   

    应该是最终答案吧。综合bdmh的代码 function getrect(Sender:Tobject;index:Integer):Trect;
    var
      RE:Trect;
    begin
      SendMessage(rzpagecontrol1.Handle, TCM_GETITEMRECT, I, LPARAM(@Re));
      result:=Re;
    end;
    procedure TForm1.pgc1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      i:Integer;
      R:TRect;
      p:TPoint;
    begin
      GetCursorPos(p);
      for i := 0 to pgc1.PageCount - 1 do
      begin
        R := getRect;
        if (R.Left<=X) and (R.Right>=X) and (R.Top<=Y) and (R.Bottom>=Y) then
        begin
          pgc1.ActivePageIndex := i;
          pm1.Popup(p.X,p.Y);//弹出菜单
          break;
        end;
      end;
    end;
      

  5.   

    getRect(rzpagecontrol1,i);  ok 
      

  6.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus, RzTabs, StdCtrls,CommCtrl ;type
      TForm1 = class(TForm)
        Button1: TButton;
        RzPageControl1: TRzPageControl;
        TabSheet1: TRzTabSheet;
        TabSheet2: TRzTabSheet;
        PopupMenu1: TPopupMenu;
        a1: TMenuItem;
        b1: TMenuItem;
        procedure RzPageControl1MouseUp(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
       function getrect(Sender:Tobject;index:Integer):Trect;
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    function TForm1.getrect(Sender:Tobject;index:Integer):Trect;
    var 
      RE:Trect;
      i:Integer;
    begin 
      SendMessage(RzPageControl1.Handle, TCM_GETITEMRECT, I, LPARAM(@Re));
      result:=Re;
    end;
    procedure TForm1.RzPageControl1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var 
      i:Integer;
      R:TRect; 
      p:TPoint; 
    begin 
      GetCursorPos(p);
      for i := 0 to RzPageControl1.PageCount - 1 do
      begin 
        R := getRect(rzpagecontrol1,i);
        if (R.Left <=X) and (R.Right>=X) and (R.Top <=Y) and (R.Bottom>=Y) then 
        begin 
          RzPageControl1.ActivePageIndex := i;
          PopupMenu1.Popup(p.X,p.Y);//弹出菜单
          break; 
        end; 
      end; end;end.执行不成功