怎么样使一个窗体总是在另一个的上面?(100分)

  • 主题发起人 主题发起人 crystal
  • 开始时间 开始时间
C

crystal

Unregistered / Unconfirmed
GUEST, unregistred user!
当一个ToolBar被Dock出来变成窗体时,总是在主窗体的上面,但是不盖住其他进程的窗体,<br>因此不是Always On Top的样式,而且这个窗体激活时候,主窗体也不会失去焦点,<br>这种窗体是怎么做的?
 
topform.parent:=mainform;
 
设置窗体的属性formstyle=fsStayOnTop即可
 
to wulianmin:<br>&nbsp; 这样子的焦点没有问题吗?不好意思,我这几天没法试...<br>to xiaoshandong:<br>&nbsp; 拜托你看清题目先...是PhotoShop工具栏那样的窗体...<br>
 
toolbar控件的位置本来就是一直置前的,你说的问题好象不太明白
 
to xiaoshandong:<br>&gt;&gt;一个ToolBar被Dock出来变成窗体<br>说别的窗体不一定人人都装了相应的软件,我就说ToolBar被从ControlBar上Dock出来的<br>窗体肯定大家都见过<br><br>to wulianmin:<br>这样子的话topform无法drag出mainform的范围<br><br>to 各位:<br>有谁能告诉我吗?
 
form2的borderstyle设为bsDialog<br>formstyle设为fsStayOnTop<br>可以,但是它还是会取得焦点
 
可以使用mdi,photoshop就是用mdi实现的
 
FORM1处理CM_DEACTIVATE消息,在里面SETFOCUS,倒是可以,不过就是标题栏会闪一下<br><br>如果处理WM_NCACTIVATE消息,是真的不会失去FOCUS,不过,FORM2形同虚设,除了可<br>以移动,只能用来显示了,上面的按钮都点不中
 
呀,不好意思,两个消息,FORM2都是形同虚设
 
当一个ToolBar被Dock出来变成窗体时,总是在主窗体的上面,但是不盖住其他进程的窗体,<br>因此不是Always On Top的样式,而且这个窗体激活时候,主窗体也不会失去焦点,<br>这种窗体是怎么做的?<br>总结:<br>&nbsp; (1)、FORM2设为fsStayOnTop,解决在主窗体上面的问题<br>&nbsp; (2)、procedure test(var msg:tmessage);message WM_NCACTIVATE;<br>&nbsp; &nbsp; &nbsp; &nbsp;procedure tform1.test(var msg:tmessage);<br>&nbsp; &nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;msg.result:=1;<br>&nbsp; &nbsp; &nbsp; &nbsp;end;<br>&nbsp; &nbsp; &nbsp; &nbsp;这样FORM1失去FOCUS后,标题栏不会变灰,<br>&nbsp; &nbsp; &nbsp; &nbsp;FORM2处理完后再FORM1.SETFOCUS<br>&nbsp; &nbsp; &nbsp; &nbsp;这过程中,FORM2的标题栏会变动,只要把它去掉,自己做一个,<br>呵呵,就看不出来了 <br>&nbsp; &nbsp; &nbsp; &nbsp;如此有些像PHOTOSHOP的工具栏了吧<br>
 
form2与FORM1一样处理,也可以让标题栏不变,就不用自己做标题栏了 &nbsp;
 
不好意思,好长时间上不来,谢谢各位,终于解决了...<br>
 
怎么做的?说来学学
 
我也碰到类似问题,能否高诉我怎么解决的?
 
其实小山东兄所说的formstyle=fsStayOnTop可以解决窗体随着主窗体改变Z-order而且<br>总在主窗体的前面这个问题,当时我不知道,还以为formstyle只能让窗体有topmost的属<br>性,错怪小山东兄了...<br>wulianmin兄所说的topform.parent:=mainform;确实有子窗体范围被限制在父窗体之内的<br>问题,但是后来我还是采用了这种办法 :)<br>xiao_min兄 : 我回去自己弄出来的解决办法很多思想和你的简直如出一辙!咱哥俩想到<br>一块去了!<br><br>to 各位:整个解决方案是Border:=bsNone然后自己重绘窗体,代码有点长,660多行,我看<br>等那天传到我的空间上或者email给需要的兄弟...
 
多人接受答案了。
 
600多行?不会吧,很少的代码就可以实现这样的效果的呀
 
不是原先的那个目的了,这个控件用了wulianmin兄的办法,但是主要目的是支持Skin,<br>所以才有600多...
 
后退
顶部