首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB窗体置顶有关问题

2012-09-28 
VB窗体置顶问题我的工程中有很多窗体,包括MDI主窗体,子窗体,普通窗体,现在我有一个窗体想要把它置于工程所

VB窗体置顶问题
我的工程中有很多窗体,包括MDI主窗体,子窗体,普通窗体,现在我有一个窗体想要把它置于工程所有窗体的顶部,但又不是该工程中模式窗体的顶部,该如何解决这个问题呢?
  当然之前我有用过API函数来置顶:SetWindowPos Me.hWnd, HWND_TOPMOST, Me.Left, Me.Top, Me.Width, Me.Height, FLAGS,但是这样置顶的话,它在整个系统的顶部,并且也在其他应用程序的顶部,而且这种置顶方法好像不能用于MDI子窗体。如果我将该窗体置为MDI子窗体的话,只能用zorder 0 ,但是如果点击该窗体下面的其他窗体的时候,它就被覆盖掉了,看不见了,当然这也不是我想要的结果,我也试过在点击其他窗体可能覆盖掉它的时候进行设置置顶,但是那样的话,我下面的窗体就无法激活了。
  这个问题有哪位大神帮指点下,不胜感激!!!

[解决办法]
楼主试下这样的:

Form2.Show 0, MDIForm1


Form2 是一个普通窗体, MDIForm1是MDI窗体。
[解决办法]
如果你有多个非模态窗口的话,它们当然是相互覆盖的。
另外Mdi子窗口只能在客户区内移动。

你可以试下SetParent。将mdi子窗口的父窗口设置为主窗口,这样就可以移出来了。


如果你要实现浮动工具条或者工具箱,你可以使用现成的控件包,美观也省事,比如ActiveVar、DockStudio或者xTreme Toolkit for ActiveX

热点排行