level 1
大家应该都对属性窗口不陌生吧?此窗口有几个特点:一、始终在调用此窗口的源窗口的前面,但不会在其它窗口的最前面二、可以操作此窗口,也可以操作调用此窗口的源窗口暂时还没有发现与一般的对话框有其它什么不同其实这些特点,在某些查找对话框上也可以看到,而最多见的,就是在资源管理器上复制文件时出现的复制进度提示窗口了,比如打开一个资源管理器,复制文件,此窗口会一直保持在此资源管理器的前面,但我们再打开一个资源管理器或其它窗口时,前面的资源管理器的复制进度提示窗口不会覆盖在其它窗口上面,而仅仅是在其对应的管理器的窗口的前面而已,请问大家,要实现有以上特点的窗口,需要怎样做?望高手赐教!
2006年07月27日 01点07分
1
level 1
怎么?难道就没有人知道吗?cbm66,在吗?求救啊?!!!
2006年07月27日 03点07分
2
level 1
估计是SetWindowPos 函数,可以调整窗口间的位置关系,查查它的说明吧。我现在没VB没验证
2006年07月27日 05点07分
5
level 1
4楼的是显示模式窗体,源窗体将不能再操作SetWindowPos 函数也没有一个选项是可以达到以上目的的:Private Const HWND_BOTTOM = 1Private Const HWND_BROADCAST = &HFFFF&Private Const HWND_DESKTOP = 0Private Const HWND_NOTOPMOST = -2Private Const HWND_TOP = 0Private Const HWND_TOPMOST = -1
2006年07月27日 08点07分
6
level 1
Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long其中hWndInsertAfter Long,窗口句柄。在窗口列表中,窗口hwnd会置于这个窗口句柄的后面。也可能选用下述值之一: HWND_BOTTOM 1 将窗口置于窗口列表底部 HWND_TOP 0 将窗口置于Z序列的顶部;Z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序 HWND_TOPMOST -1 将窗口置于列表顶部,并位于任何最顶部窗口的前面 HWND_NOTOPMOST -2 将窗口置于列表顶部,并位于任何最顶部窗口的后面
2006年07月27日 08点07分
8
level 1
不能达我的要求:要此属性窗口一直保持在原窗口的前面,但不能在所有窗口的最前面(与其它窗口无关,其它窗口可以到此属性窗口的前面),就是不能使用HWND_TOPMOST
2006年07月27日 09点07分
9
level 13
TreeView1.ZOrder (0) 或 ListView1.ZOrder (0)可利用这两个控件操作 资源管理器
2006年07月27日 09点07分
10
level 1
cbm66,您这是实现什么啊?不明白,也没有实现我要的效果啊?看来您们没有明白我的意思啊?!要求:如在资源管理器里要复制文件时,会弹出一个复制进度对话框,在文件未复制完成或用户未取消复制之前,无论用户如何操作哪个窗体(用户机器上所有已打开和即将打开的窗体),都无法改变此复制对话框一直保持在此资源管理器的前面的状态!用数字来表示Z的位置则是如下(0代表最上面的窗口):用户打开了一个资源管理器A(此时此窗体的Z位置为0),进行复制文件,当正在复制并未复制完成并且用户未取消复制之间,复制进度对话框B出现(此时窗体A的Z位置为1,而此对话框B的Z位置为0,到了窗体A的上面),现在用户又打开了或激活了其它窗体如IE或其它程序或是新开了一个资源管理器窗口C,此时窗口C的Z位置为0,在最上面,窗体A的Z位置自然就会变成2,对话框B的Z也就变成了1,还是在资源管理器A的上面,但处于窗口C的下面,无论再打开或是激活多少个窗口,也无论是否激活了窗口A,无论资源管理器A的Z位置变成几,对话框B的Z位置始终是比窗口A小1,只要对话框B不消失,窗口A的Z位置始终无法到0。大家明白了吗?
2006年07月28日 00点07分
11
level 1
我要的就是要打开一个属性对话框,要求此对话框始终在打开此属性对话框的窗口的上面,打开后,还要对其它窗体进行操作,包括打开此属性对话框的窗口,要求此属性对话框的Z位置要满足上面的描述的特性,请问如何才能实现?如果用SetWindowPos (hwnd,-1,0,0,0,0,3),则此属性窗口会永远保持在最上面,除非用户再打开一个顶层窗口,这不是我要的效果啊!
2006年07月28日 01点07分
12
level 1
这个要求也是非常简单的啊!也是非常常见的啊!为什么就这么难呢?!
2006年07月28日 01点07分
13
level 1
你看看是不是像msgbox那样的效果呢, 如果是就应该好办了,
2006年07月28日 10点07分
14
level 1
我晕,您有没有看我前面的内容啊?可能也不能怪您,因为我写得太长了,没有人有这个耐心看完,如果只要您说的msgbox那样的效果,我还用发这个帖吗?模式窗体未关闭之前,不能操作此程序中的其它窗体,我要的是可以操作
2006年07月28日 10点07分
15
level 1
NN滴,是不是这个:Form1.Show vbModeless, Me
2006年07月28日 13点07分
18