VB調用API函數使窗口保持在最上層 | |||
| |||
轉自: VB編程園 ---- 我們看到有的應用程序不管窗口是否活動都使窗口保持在最上層,常見的Microsoft Word的文件打開和編輯查找窗口就是這樣。在VB開發中可以通過調用SetWindowsPos()API函數實現這個功能。該函數聲明如下: 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 ---- hWnd變元是窗口的句柄;x,y是窗口的左上角的坐標;cx、cy是窗口寬度和高度;hWndInsertAfter變元是窗口清單中hWnd窗口前面的窗口句柄,有四個可選值: 序號 可 選 值 作 用 1 HWND_BOTTOM 把窗口放在窗口清單的底部 2 HWND_TOP 把窗口放在窗口清單的字符順序的頂部 3 HWND_TOPMOST 把窗口放在窗口清單的頂部 4 HWND_NOTOPMOST 把窗口放在窗口清單的頂部,最上層窗口之下 ---- WFlags變元為整型值,有八個可選值: 序號 可 選 值 作 用 1 SWP_DRAWFRAME 在窗口周圍畫一個方框 2 SWP_HIDEWINDOW 隱藏窗口 3 SWP_NOACTIVATE 不激活窗口 4 SWP_NOMOVE 保持窗口當前位置 5 SWP_NOREDRAW 窗口不自動重畫 6 SWP_NOSIZE 保持窗口當前尺寸 7 SWP_NOZORDER 保持窗口在窗口清單中的當前位置 8 SWP_SHOWWINDOW 顯示窗口 ---- 下面的例子程序Test演示了對函數中的以上7個變元作正確的選擇后,應用程序運行后窗口總可保持在最上層,程序清單如下: 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_TOPMOST = -1 Private Const SWP_SHOWWINDOWS = &H40 Private Sub Form_Load() Dim retValue As Long retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST, Me.CurrentX, _ Me.CurrentY, 300, 300, SWP_SHOWWINDOWS) End Sub ---- 備注:編寫函數聲明時,整個函數聲明須在一行中寫完,不可提行。一般是自動從系統中得到函數聲明,方法是從VB的外接程序管理中啟動“API 瀏覽”程序,在“API 瀏覽”程序中找到所需的函數聲明,然后復制到VB代碼中。 |
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月