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

囧了,关于窗体置顶与取消置顶的有关问题

2012-01-28 
囧了,关于窗体置顶与取消置顶的问题。SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3SetWindowPos Me.hwnd, 1, 0

囧了,关于窗体置顶与取消置顶的问题。
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
SetWindowPos Me.hwnd, 1, 0, 0, 0, 0, 3
上面一是“置顶”,二是“取消置顶”
但问题是,假如我同时已经有几个窗体都是置顶,一但用了“取消置顶”的命令。就会出现所有窗体都全“取消置顶”的问题。但“置顶”倒没有问题,可以一个一个的置顶。
请问这是为什么呢?
还有我如何判断窗体是否“置顶”呢?我用“ByVal hWndInsertAfter As Long”中来判断好象不行.......

啊......我可能想到这个问题........因为我在各窗体的“通用”部分都声明了
Private Declare Function SetWindowPos& Lib "user32" (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)
会不会是这里出问题呢?...但是“置顶”又可以一个一个的置顶的啊....?


[解决办法]
很不幸的孩子..........你貌似遇到一个BUG了...............

http://support.microsoft.com/kb/192254/zh-cn

当使用 NoTopmost 标志为 Visual Basic 窗体调用 SetWindowPos 时, 项目中的所有窗体被设置为 NoTopmost
[解决办法]

引用楼主 zgjzgjkyo 的帖子:
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
SetWindowPos Me.hwnd, 1, 0, 0, 0, 0, 3
上面一是“置顶”,二是“取消置顶”
但问题是,假如我同时已经有几个窗体都是置顶,一但用了“取消置顶”的命令。就会出现所有窗体都全“取消置顶”的问题。但“置顶”倒没有问题,可以一个一个的置顶。
请问这是为什么呢?
还有我如何判断窗体是否“置顶”呢?我用“ByVal hWndInsertAfter As Long”中来判断好象不行.......

啊…

热点排行