MID框架窗口,怎么让打开的子窗口充满整个主窗口客户区。
要刚好满屏显示,主窗口和子窗口都不能出现滚动条

解决方案 »

  1.   

    小弟刚转到delphi开,请赐教。谢谢!!
      

  2.   

    private
        { Private declarations }
        FClientInstance: TFarProc;
        FPrevClientProc: TFarProc;
        procedure ClientWndProc(var Message: TMessage);procedure TForm1.ClientWndProc(var Message: TMessage);
    begin
      with Message do
        case Msg of
          $3F:
            begin
              SetWindowLong(ClientHandle, GWL_EXSTYLE, 0);
              SetWindowPos(ClientHandle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED
                or SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER);
            end;
        else
          Result := CallWindowProc(FPrevClientProc,
            ClientHandle, Msg, wParam, lParam);
        end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FClientInstance := MakeObjectInstance(ClientWndProc);
      FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
      SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
    end;
      

  3.   

    先把窗体的这个属性defaultMonitor设置成dmMainForm
    然后再打开子窗体前,动态设置left:=0,top:=0,width=?,heigth=?其中width、heigth也可以开始设置好
      

  4.   

    Form的WindowState為wsMaximized不行嗎
      

  5.   

    子窗体的属性 FormStyle:=fsMDIChild;
    WindowState:=wsMaximized;
      

  6.   

    Form的属性WindowState为wsMaximized
      

  7.   

    怎么老是有人告诉我:Form的属性WindowState为wsMaximized
    这不行。我要的效果是子窗口刚好平铺于主窗口的客户区(client),并且在主窗口中不能出现滚动条之类的。这个在PB里是非常简单的,怎么到了delphi连高手也搞不定了。
    不过还是要感谢大家的帮助,小弟刚学delphi实在是不适应。
      

  8.   

    jinjazz(近身剪(充电中...)) 的代码或许对我有用,但是太高深了,我看不懂。
      

  9.   

    我自已搞定了,要修改froms.pas原码考到本工程目录下,再修改子窗口的排列方式为客户区就行了。