我有一個提醒視窗,會被定時打開(實際只open一次,后面都是隱藏-打開-隱藏),每次打開都希望顯示在最前面,所以使用了SetPosition(TopMost!),但這樣會打斷當前的操作,使當前的物件失去焦點,如何在每次打開提醒視窗的時候顯示在最前面,但是又不中斷當前的操作?
uj5u.com熱心網友回復:
參考以下VB的宣告Option Explicit
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)
視窗代碼:
Dim rtn
'讓視窗在頂層
rtn = SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3)
'取消視窗在頂層
'rtn = SetWindowPos(F_V.hwnd, -2, 0, 0, 0, 0, 3)
uj5u.com熱心網友回復:
把你需要置頂的改為SetWindowPos(handle(w_頂), -1, 0, 0, 0, 0, 3)
uj5u.com熱心網友回復:
試了一下,還是不行我的代碼是這樣
SetWindowPos(handle(this), -1, 0, 0, 0, 0, 3)
SetWindowPos(handle(this), -2, 0, 0, 0, 0, 3)
F_V指的是不是另一個視窗
uj5u.com熱心網友回復:
SetWindowPos(handle(this), -1, 0, 0, 0, 0, 3)uj5u.com熱心網友回復:
改用Win API之AnimateWindow()吧,效果非常好。不會中斷當前操作,不會改變當前焦點。uj5u.com熱心網友回復:
學習了,轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85292.html
標籤:API 調用
上一篇:PB連接I Servers資料庫無Updte()屬性
下一篇:pb中的socket請教
