你可以把按钮隐藏或者新建一个子窗口,把按钮放在上面,在没有其它子窗口时显示这个子窗口。在mdimainfor上放个按钮是个奇怪的想法,有必要吗。

解决方案 »

  1.   

    to  robinhunter(深空):
    我在做导航图。
      

  2.   

    //参考如下代码
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Windows.SetParent(Button1.Handle, ClientHandle);
    end;//-----------------------------------------------------
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Windows.SetParent(Panel1.Handle, ClientHandle);
    end;procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      TPanel(Sender).SendToBack;
    end;
      

  3.   

    你的目的仅仅是要求主窗体上的按钮不可见?
    那么,可以,在
    子窗体SHOW事件中写上:主窗体名称.按钮名称.visible:=FALSE;
    子窗体CLOSE事件中写上:主窗体名称.按钮名称.visible:=TRUE;
    一切OK?
      

  4.   

    procedure TDlgStep.AlwaysOnTop(Form: TForm; OnTop: Boolean);
    begin
      if OnTop then
        SetWindowPos(Form.Handle, HWND_TOPMOST, 0, 0, 0, 0,
        SWP_NOMOVE or SWP_NOSIZE)
      else
        SetWindowPos(Form.Handle, HWND_NOTOPMOST, 0, 0, 0, 0,
        SWP_NOMOVE or SWP_NOSIZE)
    end;