求助!大家快点来帮帮我啊!!(100分)

  • 主题发起人 主题发起人 nicet
  • 开始时间 开始时间
N

nicet

Unregistered / Unconfirmed
GUEST, unregistred user!
比如有form1和form2,form1为主窗口我要做到的是点击form1的button后出现form2,然后<br>form1隐藏,最重要的是要让form2的总在最上面(也就是运行后打开其他的窗口form2也总在最上面)<br>,这样的话我试过了,即使设置了Form1或者Form2的FormStyle := fsStayOnTop;<br>form2的总在最上面也没有办法实现!<br><br>FormStyle := fsStayOnTop;这个好像只有在单独一个窗口form1<br>上使用有效!!<br><br>而且SetWindowPos好像也没有什么用<br><br>[:(!]<br>我很急,大家快点来帮我啊!
 
[:)]截获消息可能解决!?
 
这个问题是比较讨厌,在一个Modal窗口上面想是另外一个StayOnTop窗口,这个StayOnTop窗口<br>好像会丢失OnTop属性,因此,你必须在OnTop窗口的OnShow中,用SetWindowLong设置OnTop即可。<br>还有,就是后来OnTop的窗口会遮盖原来的OnTop窗口,因此你可以用一个Timer来OnTop也可以。
 
Jams,具体怎么解决,我不会啊
 
Kingron[:(],能否具体点呢?我是新手,谢谢
 
晕倒,这么具体了,还要?在你要OnTop的那个窗体的OnShow事件中,添加代码:<br>&nbsp; SetWindowPos(handle, hwnd_topmost, 0, 0, 0, 0, swp_nomove or swp_nosize);<br>不好意思记性差了,应该使用SetWindowPos。<br>不过我不保证一定符合你的要求,我以前碰到过这种情况,使用这个方法解决。
 
Kingron<br><br>[:(]SetWindowPos(handle, hwnd_topmost, 0, 0, 0, 0, swp_nomove or swp_nosize);<br>好像也没有用,试过不行我才再问你的!帮帮忙,帮我再想想把
 
将form1的button事件执行(即Form2.show)后,将From1隐藏(From1.hide)<br>最后Form2.Close事件执行关闭程序命令(Application.T....)<br>试试吧<br>
 
Kingron<br>[:(!]我又试过了,都不行啊,我真的好急好急的拉,<br>这年头,女的写程序可真不容易,你就好人做到低把。[:(]
 
不知道你的代码是什么,应该这个就可以了。我以前就是这么解决的。
 
[:(!]zhangpg,你回答的是什么根什么啊!!!我的问题你看清楚了么!!<br>将form1的button事件执行(即Form2.show)后,将From1隐藏(From1.hide)<br>最后Form2.Close事件执行关闭程序命令(Application.T....)<br><br><br>这些我都知道啊!!!![:(]
 
出鬼了,把代码G过来(mailto:Kingron@163.net)或者贴出来,我看看,看在你是MM的面上~~~~~~:)[:D]
 
Kingron<br>代码如下啊:procedure TForm2.FormShow(Sender: TObject);<br>begin<br>SetWindowPos(handle, hwnd_topmost, 0, 0, 0, 0, swp_nomove or swp_nosize);<br>end;<br><br>要不要我发给你看看啊~~~,你有么又oicq的?
 
&nbsp;哎呀,我是说你写一个简单的测试程序,或者把你的整个程序,打包过来,这个代码我看了也没有用啊。
 
[:(][:(]Kingron稍等!
 
Kingron,发过来了,你收收看,给我个oicq,联系可以方便点!
 
Kingron,我的qq:52900413
 
这是我以前的笔记:<br>OnTop窗体的一个问题:<br>例如一个Form1,Form2,Form1中调用Form2:<br>Hide;<br>form2.show;<br><br>这个时候,Form2是不能OnTop的。必须修改代码如下:<br>try<br>&nbsp; &nbsp; Hide;<br>&nbsp; &nbsp; Application.NormalizeAllTopMosts;<br>&nbsp; &nbsp; LitterWin.ShowModal;<br>&nbsp; &nbsp; Application.RestoreTopMosts;<br>finally<br>&nbsp; &nbsp; show;<br>end;<br>而且,在Form2的OnShow中,必须添加代码:<br>SetWindowPos(handle, hwnd_topmost, 0, 0, 0, 0, swp_nomove or swp_nosize);
 
没有必要给我发送代码过来了,这个绝对可以通过的。我也是研究了好久才发现的。
 
Kingron,你真好,我马上去试试看,还有我给你的email你收到了么?
 
后退
顶部