我模仿的MSN消息窗口,滑动在xp下面正常。可是如果让这个窗体TOPMOST或者在win 2k下面运行,滑出的过程会把任务栏压在下面,很不美观。代码如下:请问如何解决呢?此外,用SHOWWINDOW(FORM.HANDLE,4)可以让滑出的窗口不处于焦点状态,可是这样的话我在窗体上面绘制的图像还有容纳的其他控件都不显示了,怎么处理呢?
procedure TForm4.Timer1Timer(Sender: TObject);
begin
  if form4.Top<screen.Height-form4.height-25 then
     timer1.Enabled:=false;
  form4.Top:=form4.Top-3;
end;调用form4.show可以正常滑出,但是其过程压住了任务栏;
用showwindow(form4.handle,4)也可以滑出,但是窗体上面灰蒙蒙一片,调用refresh也不管用,怎么办呢?

解决方案 »

  1.   

    form4.update只能解决我第二个疑问吧。请麻烦解决一下第一个问题好吗?
      

  2.   

    还是有问题,比如我在onclick事件里面用showwindow(form4.handle,4)调出,在
    procedure TForm4.Timer1Timer(Sender: TObject);
    begin
      if form4.Top<screen.Height-form4.height-25 then
         timer1.Enabled:=false;
      form4.Top:=form4.Top-3;
      form4.update;
    end;
    出来以后还是灰蒙蒙的一片。
      

  3.   

    我快放弃了,我手头有c#和vb.net的例子,但是就是不知道如何用delphi实现。
      

  4.   

    我在form4.show前面加上了一句:form4.sendtoback就可以不压任务栏了。不过showwindow()的问题期待早点解决。因为看微软的文档MSN消息窗口就是用SHOWWINDOW()加TIMER加REFRESH加REPAINT实现的。我就是不知道如何在DELPHI里面实现。