窗口Z轴层次的问题

TrouGer 2005-03-06 04:30:25
怎样实现FORM1总在FORM2上方?
注意不要把FORM1放在最顶层,而是只要在FORM2上方就可以了(还要能够拖到屏幕所有地方,所以SETPARENT不行)
再注意不要让FORM1不能激活!
其实形象的说就是PHOTOSHOP工具栏的效果
...全文
193 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
TrouGer 2005-03-26
  • 打赏
  • 举报
回复
to YaDa's code
不管用啊
YaDa 2005-03-20
  • 打赏
  • 举报
回复
有谁知道Form1.show 0,Form2后用代码“END”结束或点VB的结束按钮时,为什么会说非法操作,然后VB也跟着关闭了。(是在WIN98中,XP没试过)
我也是98的,我通常在这种情况下,在Form_Unload中加上这样的代码:
'干净退出
Dim i As Integer
For i = 0 To Forms.Count - 1
Unload Forms(i)
Next

surstar 2005-03-20
  • 打赏
  • 举报
回复
这样可以实现吗?  WIDNOWS会让得到焦点的置顶的
TrouGer 2005-03-19
  • 打赏
  • 举报
回复
有谁知道Form1.show 0,Form2后用代码“END”结束或点VB的结束按钮时,为什么会说非法操作,然后VB也跟着关闭了。(是在WIN98中,XP没试过)
wenquan836 2005-03-19
  • 打赏
  • 举报
回复
rainstormmaster 2005-03-19
  • 打赏
  • 举报
回复
//问题是怎么重绘,总不会是BITBLT吧?画到GETWINDOWDC(FORM1。HWND)上的东西能擦掉的,没有AUTOREDRAW属性呀。

研究一下这个例子:
http://vbaccelerator.com/home/VB/Code/Controls/Skins/VB6_NeoCaption_Full_Source.zip
YaDa 2005-03-18
  • 打赏
  • 举报
回复
原来前面已经有人说了,不好意思,算我没说。
YaDa 2005-03-18
  • 打赏
  • 举报
回复
Form1.show 0,Form2
你就试一下吧,包你满意
TrouGer 2005-03-18
  • 打赏
  • 举报
回复
up
pcwak 2005-03-14
  • 打赏
  • 举报
回复
Form1.ZOrder

ZOrder 方法


将指定的 MDIForm,Form 或控件放置在其图层的z-顺序的前端或后端。不支持命名参数。

语法

object.ZOrder position

ZOrder 方法的语法包含下列部分:

部分 描述
object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,则具有焦点的 Form 对象缺省为 object。
Position 可选的。一个整数,它用以指示 object 相对于同一 object 其它实例的位置。如果 position 为 0 或被省略,则 object 定位在Z-顺序前面。如果 position 为 1,则 object 定位在Z-顺序后面。


说明

在设计时选择“编辑”菜单中的“置前”或“置后”菜单命令,可以设置对象的Z-顺序。

在 MDIForm 对象内,Zorder 根据 position 的数值决定将 MDI子窗体放置到 MDI 客户区的前面或后面。对于 MDIForm 或 Form 对象,Zorder 根据 position 的数值决定将窗体放置到屏幕的前面或后面。因此,窗体可以显示在其它运行中的应用程序的前面或后面。

有三个图层与窗体和容器相关联。后层是显示图形方法结果的绘图空间。下一个是中层,用来显示图形对象和 Label 控件。前层显示所有非图形控件,如 CommandButton、CheckBox 或 ListBox。靠近前层的层中包含的东西将覆盖该层后面的各层包含的东西。Zorder 只对该对象在其中显示的那一层内的各个对象进行重排。
TrouGer 2005-03-14
  • 打赏
  • 举报
回复
而且FORM1是个MDIFORM,难道把每个子窗体标题栏都重绘?况且被遮盖的地方连BITBLT都得不到
TrouGer 2005-03-14
  • 打赏
  • 举报
回复
问题是怎么重绘,总不会是BITBLT吧?画到GETWINDOWDC(FORM1。HWND)上的东西能擦掉的,没有AUTOREDRAW属性呀。
laviewpbt 2005-03-08
  • 打赏
  • 举报
回复
//但是再问一下能不能在激活FORM2后,让FORM1的标题栏不“褪色”
应该可以吧,在FORM1的相关消息中(如失去焦点等)重绘标题拦。
TrouGer 2005-03-08
  • 打赏
  • 举报
回复
up
TrouGer 2005-03-06
  • 打赏
  • 举报
回复
Form2.Show , Form1可以办到
但是再问一下能不能在激活FORM2后,让FORM1的标题栏不“褪色”
大熊猫侯佩 2005-03-06
  • 打赏
  • 举报
回复
应该有专门的 API ,你可以尝试 SetWindowPos
tztz520 2005-03-06
  • 打赏
  • 举报
回复
Form2.Show , Form1'这样能放到Form2上
w3k 2005-03-06
  • 打赏
  • 举报
回复
form1.show 1好象不是,但帮你顶&&

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧