在一个工程里面,有一个子窗体,我想一直让它置顶,所以我用了SetWindowPos API,但是在前面已经加载有模式窗体的情况下再加载使用SetWindowPos置顶的窗体时,这个子窗体便不能再接收到事件了。开始不明白,后来我做了个测试,发现在使用SetWindowPos加载置顶子窗体前,必须前面没有加载任何的其它有模式窗体,否则就会造成上述情况。我现在想问有没有办法在已经加载过有模式窗体的情况下可以让其它窗体置顶?
在线等待,谢谢!!
在线等待,谢谢!!
解决方案 »
- 怎麼優化程序登錄界面
- 在VB中要实现像Windows优化大师那样的界面怎么做!
- 关于mshflexgrid 的问题
- vb如何实现文件的粘贴
- 怎样判断一个字符串是否在一个文本文件里面?
- 一个超简单的问题.
- 为什么datagrid不能修改数据?
- 计算生日问题?
- 为什么我的msdn帮助系统“目录”、“索引”等里的标题都显示不出来了呢?
- 我想做一个程序,他能够自动拨号,并且监视拨号过程,能知道拨号是否成功或失败,现在网上的拨号资料大都是启动拨号网络里的连接,再发送一个回车键,简直太低级了也不好控制,我想达到和网际快车软件的拨号功能一样,不知道调用什么函数?我在API里没找到?
- mp3文件的时间长度获取
- 临近圣诞的疑问
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 置顶: SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
恢复正常 SetWindowPos Me.hwnd, -2, 0, 0, 0, 0, 3
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40Dim Success As Long
Success = SetWindowPos(EtKlokControl.hWnd, -1, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)