我在mdi窗口上放了一个图片,aligin设置成client,可是在运行后,背景图总是与工具条间隔一定的距离(宽度为工具条的宽度),为何?而且,我调整工具条的宽度后,这个间隔也随着工具条的宽度而变化

解决方案 »

  1.   

    procedure tmain.createwnd;
    begin
       inherited createwnd;
       fnewclientproc:=makeobjectinstance(clientwndproc);
       foldclientproc:=pointer(getwindowlong(clienthandle,gwl_wndproc));
       setwindowlong(clienthandle,gwl_wndproc,longint(fnewclientproc));
    end;procedure tmain.clientwndproc(var message:tmessage);
    begin
       case message.Msg of
          wm_erasebkgnd:
          begin
             callwindowproc(foldclientproc,clienthandle,message.msg,message.wparam,message.lparam);
             fdrawdc:=twmerasebkgnd(message).dc;
             drawtiled;
             message.Result:=1;
          end;
          wm_vscroll,wm_hscroll:
          begin
             message.Result:=callwindowproc(foldclientproc,clienthandle,message.msg,message.wparam,message.lparam);
             invalidaterect(clienthandle,nil,true);
          end;
          else
            message.Result:=callwindowproc(foldclientproc,clienthandle,message.msg,message.wparam,message.lparam);
       end;
    end;procedure tmain.drawtiled;
    var
      row,col:integer;
      cr,ir:trect;
      numrows,numcols:integer;
    begin
       getwindowrect(clienthandle,cr);
       ir:=image1.clientrect;
       numrows:=cr.bottom div ir.bottom;
       numcols:=cr.right div ir.right;
       with image1 do
         for row:=0 to 4 do
            for col:=0 to 7 do
                bitblt(fdrawdc,col*picture.width,row*picture.height,picture.width,picture.height,picture.bitmap.canvas.handle,0,0,srccopy);
    end;
      

  2.   

    foldclientproc,fnewclientproc:tfarproc;
        fdrawdc:hdc;
        procedure drawtiled;
        procedure clientwndproc(var message:tmessage);
        procedure createwnd;override;
      

  3.   

    太麻烦了,加一个panel,把image放在panel里就行了
      

  4.   

    to : ihihonline(小小->不要再流浪!!) :我先试验一下
    to wedical(秋雨) :加一个panel,mdi窗口就无法打开其他窗口了,打开了根本看不到。
      

  5.   

    to : ihihonline(小小->不要再流浪!!) :试验成功了,
    谢谢所有的人。加分!