MDI中怎样去掉子窗体的边框?我想做导航界面,使界面看起来就象一幅图片,为了美观想去掉边框,看哪位高手能帮忙!另:在网上搜到一些例子都不能真正去掉边框,希望您的代码真的能解决问题!分不够可以再开帖!

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        FClientInstance: TFarProc;
        FPrevClientProc: TFarProc;
        procedure ClientWndProc(var Message: TMessage);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}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;end.
      

  2.   

    回复人: jinjazz(近身剪(充电中...)) ( ) 信誉:132 非常感谢你的关注!
    我先试试看能否解决问题
      

  3.   

    to: 回复人: jinjazz(近身剪(充电中...)) ( ) 信誉:132 你的回复不能解决问题,你的是去除主窗体的边框,我是要去掉子窗体的边框
      

  4.   

    to: 回复人: jinjazz(近身剪(充电中...)) ( ) 信誉:132 看边框是否去除成功的判断方法为:
    在窗口中放入一个image控件,在里面放入一张图片,并且让image填充整个客户区就可以看出来是否还有边框
      

  5.   

    to:回复人: ljz9425(阿九) ( ) 信誉:100 非常感谢你的关注!这个方法对MDI窗体没用,对普通窗口可以所以我想了一个变通的方法提出了一个问题,见帖子:http://community.csdn.net/Expert/topic/4546/4546965.xml?temp=.7546198
      

  6.   

    直接放个Panel上去不行吗?为什么非要用Form?