計(jì)算機(jī)二級(jí)VisualBasic輔導(dǎo):使用API函數(shù)設(shè)置窗體總在前端

字號(hào):

在某些情況下我們需要某個(gè)窗體總是在所有窗體的最前端,我們可以使用Form1.show 1來實(shí)現(xiàn),但是這樣會(huì)出現(xiàn)一個(gè)問題,就是使整個(gè)程序暫停運(yùn)行,直到Unload Form1后程序才會(huì)繼續(xù)運(yùn)行.
     那么如何使我的窗口總在最前?而不影響到我的整體程序運(yùn)行呢?
     使用api函數(shù) SetWindowPos 可以很容易的作到。
     SetWindowPos 就是完成設(shè)置窗口位置和狀態(tài)(pos=position)的功能。源代碼如下:
     Option Explicit
     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) As Long
     Private Const HWND_MOST& = -1
     ' 將窗口置于列表頂部,并位于任何最頂部窗口的前面
     Private Const SWP_NOSIZE& = &H1
     ' 保持窗口大小
     Private Const SWP_NOMOVE& = &H2
     ' 保持窗口位置
     Private Sub Form_Load()
     SetWindowPos Me.hwnd, HWND_MOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
     ' 將窗口設(shè)為在所有窗口前端
     End Sub