亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用VB制作TopMost類型窗口

2019-11-18 17:26:32
字體:
來源:轉載
供稿:網友
TopMost這個詞也許你很陌生,但具有TopMost窗口的軟件你應該早就接觸過,如Office97、網絡吸血鬼、IE等。所謂TopMost窗口是指哪些始終出現在桌面的最前方且不會被其它窗口覆蓋的窗口,如網絡吸血鬼中的下載圖標。
一般憎況下,在運行VB程序時,窗口總有可能會被其它程序的窗口所覆蓋。如何在自己的應用程序中實現TopMost類型的窗口呢?我們可以通過調用WindowsAPI函數SetWindowPos來實現。
一、SetWindowPos函數介紹
SetWindowPos函數功能是將一個窗口在三維空間中移動,利用它,你可以改變一個窗口的位置,甚至可以在Z軸上改變(Z軸決定了一個窗口和其它窗口的前后關系),你還可以改變窗口的尺寸。為了實現TopMost類型的窗口,我們只需調用該函數,將窗口放在所有窗口的前面并永遠保持在最前面即可。要想在VB中使用SetWindowPos函數,必須在程序的代碼模塊中進行如下的函數聲明:
DeclareFunctionSetwindowPosLib"user32.dll"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsasLong)AsLong
SetWindowPos函數各個參數的含義見表1。表1SetWindowPos函數的參數解釋

-align="middle"width="182">參數名->-align="middle"width="334">參數含義->-align="middle"width="182">hwnd->-align="middle"width="334">要移動的窗口的句柄(可以用窗體的hwnd屬性)->-align="middle"width="182">hWndInsertAfter->-align="middle"width="334">關于如何在Z軸上放置窗口的標記(具體見表2)->-align="middle"width="182">x->-align="middle"width="334">相當于窗口的Left屬性->-align="middle"width="182">y->-align="middle"width="334">相當于窗口的Top屬性->-align="middle"width="182">cx->-align="middle"width="334">相當于窗口的Right屬性->-align="middle"width="182">cy->-align="middle"width="334">相當于窗口的Bottom屬性->-align="middle"width="182">wFlags->-align="middle"width="334">關于如何移動窗口的標記(具體見表3)->
表2HWndInsertAfter參數的可能取值及含義

-align="middle"width="214">hWndInsertAfter的可能取值->-align="middle"width="302">功能->-align="middle"width="214">某一窗口的句柄->-align="middle"width="302">將窗口放在該句柄指定的窗口后面->-align="middle"width="214">HWND_BOTTOM(1)->-align="middle"width="302">把窗口放在Z軸的最后,即所有窗口的后面->-align="middle"width="214">HWND_TOP(0)->-align="middle"width="302">將窗口放在Z軸的前面,即所有窗口的前面->-align="middle"width="214">HWND_TOPMOST(-1)->-align="middle"width="302">使窗口成為“TopMost”類型的窗口,這種類型
的窗口總是在其它窗口的前面,真到它被關閉->-align="middle"width="214">HWND_NOTOPMOST(-2)->-align="middle"width="302">將窗口放在所有“TopMost”類型
窗口的后面、其它類型窗口的前面->
表3wFlags參數的可能值及含義

-align="middle"width="218">wFlags參數的可能值->-align="middle"width="298">功能->-align="middle"width="218">SWP_DRAWFRAME(&H20)->-align="middle"width="298">移動窗口后重畫窗口及其上的所有內容->-align="middle"width="218">SWP_HIDEWINDOW(&H80)->-align="middle"width="298">隱藏窗口,窗口隱藏后既不出現在屏幕上也不出現在任
務欄上,但它仍然處于激活狀態->-align="middle"width="218">SWP_NOACTIVATE(&H10)->-align="middle"width="298">窗口移動后不激活窗口,當然,如果窗口在移動前就是
激活的則例外->-align="middle"width="218">SWP_NOCOPYBITS(&H100)->-align="middle"width="298">當窗口移動后,不重畫它上面的任何內容->-align="middle"width="218">SWP_NOMOVE(&H2)->-align="middle"width="298">不移動窗口(即忽略X和Y參數)->-align="middle"width="218">SWP_NOSIZE(&H1)->-align="middle"width="298">不改變窗口尺寸(即忽略Cx和Cy參數)->-align="middle"width="218">SWP_NOREDRAW(&H8)->-align="middle"width="298">Donotremovetheimageofthewindowinitsformerposition
fromthescreen.InotherWords,leavebehindaGhostimage
ofthewindowinitsoldposition->-align="middle"width="218">SWP_NOZORDER(&H4)->-align="middle"width="298">不改變窗口聽Z軸位置(即忽略hWndInsertAfter參數)->-align="middle"width="218">SWP_SHOWWINDOW(&H40)->-align="middle"width="298">顯示窗口(之前必須使用過SWP_HIDEWINDOW
隱藏窗口)->

前面已提到,利用SetWindowPos函數可以決定窗口在Z軸中的位置,具體如何放置,需根據表2給hWndInsertAfter參數賦予合適的值。
另外,wFlags參數為SetWindowPos函數移動窗口提供了附加的特性,我們可以通過or運算將表3中若干個wFlags結合在一起使用,如SWP_NOMOVEOrSWP_NOSIZE既不移動窗口又不改變窗口的尺寸。但是要注意不要將功能沖突的值結合使用,如SWP_HIDEWINDOWOrSWP_SHOWWINDOW。
二、程序舉例
下面,我們以一個簡單的例子說明SetWindowPos函數的用法及如何實現TopMost類型窗口。新建工程,在普通窗體Form1上放置兩個命令按鈕cmdNormal和cmdTopMost,命令按鈕的Caption屬性分別為“變成普通窗口”和“變成TopMost窗口”。cmdNormal的Enabled屬性為False。為工程添加代碼模塊Moudall,在其中放置如下聲明代碼:
DeclareFunctionSetWindowPosLib"user32"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong
PublicConstSWP_NOMOVE=&H2'不移動窗體
PublicConstSWP_NOSIZE=&H1'不改變窗體尺寸
PublicConstFlag=SWP_NOMOVEOrSWP_NOSIZE
PublicConstHWND_TOPMOST=-1'窗體總在最前面
PublicConstHWND_NOTOPMOST=-2'窗體不在最前面
為窗體添加代碼如下:
PRivateSubcmdNormal_Click()
cmdTopMost.Enabled=True
cmdNormal.Enabled=False
Form1.Captio="現在是普通窗口"
SetWindowPosForm1.hwnd,HWND_NOTOPMOST,0,0,0,0,Flag
EndSub
PrivateSubcmdTopMost_Click()
cmdTopMost.Enabled=False
cmdNormal.Enabled=True
Form1.Caption="現在是TopMost窗口"
SetWindowPosForm1.hwnd,HWND_TOPMOST,0,0,0,0,Flag
EndSub
按下F5,運行程序,單擊“變成TopMost窗體”命令按鈕,此時窗口即成為TopMost類型。隨意打開桌面上的其它窗口,Form1總是處在其它窗口的前面;如果單擊“變成普通窗體”按鈕。則一切又恢復正常,一旦打開了其它窗口,則其它窗口會將Form1窗口覆蓋。
本程序用VisualBasic5.0編寫,在Pwin95、Pwin97環境下運行正常。->


上一篇:如何用VB建立快捷方式

下一篇:VB實現按鈕浮動效果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片
猜你喜歡的新聞
猜你喜歡的關注

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97久久精品视频| 黄色一区二区在线观看| 久久97久久97精品免视看| 91亚洲国产成人久久精品网站| 中文字幕无线精品亚洲乱码一区| 国产精品99久久久久久人| 国产欧美精品一区二区| 菠萝蜜影院一区二区免费| 欧洲成人午夜免费大片| 国产亚洲精品久久| 国产精品香蕉在线观看| 97香蕉久久超级碰碰高清版| 宅男66日本亚洲欧美视频| 欧美视频在线观看免费| 欧美激情精品在线| 欧美电影在线观看高清| 欧美激情一区二区三区久久久| 久久久噜噜噜久久| 国产精品白丝av嫩草影院| 国产精品热视频| 久热精品在线视频| 亚洲图片在区色| 日韩精品视频观看| 亚洲国产精品小视频| 国产极品jizzhd欧美| 欧美激情成人在线视频| 日本精品一区二区三区在线播放视频| 久久国产精彩视频| 亚洲韩国欧洲国产日产av| 成人啪啪免费看| 欧美特黄级在线| 91在线观看免费高清完整版在线观看| 午夜精品一区二区三区在线播放| 亚洲a在线播放| 国产在线观看精品| 久久综合电影一区| 欧美日韩免费区域视频在线观看| 久久久精品999| 精品视频偷偷看在线观看| 久久精品国产欧美亚洲人人爽| 欧美国产精品人人做人人爱| 国产精品久久久久久久久久免费| 欧美激情精品久久久久久黑人| 欧美中文字幕在线播放| 国产成人精品在线观看| 国产成人小视频在线观看| 国产精品都在这里| 45www国产精品网站| 久久99国产综合精品女同| 国产精品久久久久99| 国产一区二区三区中文| 亚洲欧美激情精品一区二区| 久久久久久久久网站| 精品久久久久国产| 日本高清不卡在线| 日韩电影免费在线观看| 精品亚洲一区二区三区| 永久免费毛片在线播放不卡| 国产精品视频中文字幕91| 激情成人在线视频| 欧美午夜精品久久久久久久| 国产精品一二三视频| 在线观看日韩专区| 国产精品青青在线观看爽香蕉| 亚洲欧洲自拍偷拍| 欧美精品久久一区二区| 最近2019年手机中文字幕| 久久久国产精彩视频美女艺术照福利| 国产偷国产偷亚洲清高网站| 午夜精品久久久久久99热软件| 日韩av免费看| 91丨九色丨国产在线| 日日骚av一区| 欧美大片va欧美在线播放| www日韩欧美| 亚洲精品99久久久久中文字幕| 国产精品第3页| 在线视频精品一| 欧美精品videos性欧美| 欧美日韩精品在线| 97久久伊人激情网| 亚洲天堂av高清| 欧美精品少妇videofree| 国产精品女视频| 清纯唯美日韩制服另类| 亚洲男女性事视频| 欧美野外猛男的大粗鳮| 亚洲在线观看视频| 欧美极品xxxx| 国产精品亚洲一区二区三区| 深夜福利日韩在线看| 亚洲黄色av网站| 国产亚洲视频中文字幕视频| 欧美日韩亚洲天堂| 成人激情视频免费在线| 日韩av免费网站| 日韩最新在线视频| 中文字幕一区电影| 欧美电影在线免费观看网站| 亚洲黄页视频免费观看| 免费91麻豆精品国产自产在线观看| 日韩欧美在线网址| 日韩在线观看网址| 国产成人精品日本亚洲专区61| 久久国产精品久久久久久| 国产成人精品在线播放| 色悠悠久久久久| 在线一区二区日韩| 亚洲精品福利免费在线观看| 久久中文字幕一区| 91久久久久久久久久| 91精品国产777在线观看| 欧美性xxxx极品高清hd直播| 美女扒开尿口让男人操亚洲视频网站| 国产va免费精品高清在线| 97在线看福利| 国产日韩欧美黄色| 精品久久国产精品| 久久精品国产亚洲7777| 欧美精品在线极品| 日韩成人在线视频观看| 亚洲综合中文字幕在线观看| 亚洲精品国产精品国产自| 亚洲女同性videos| 亚洲成人中文字幕| 一区二区成人精品| 欧洲美女免费图片一区| 欧美一区二区三区免费观看| 亚洲第一页中文字幕| 国产精品人人做人人爽| 成人综合国产精品| 中文字幕av一区中文字幕天堂| 69av视频在线播放| 性金发美女69hd大尺寸| 成人有码在线播放| 欧美午夜影院在线视频| 最新国产精品亚洲| 亚洲国产天堂久久国产91| 免费不卡欧美自拍视频| 久久久国产影院| 亚洲欧美视频在线| 欧美性猛交丰臀xxxxx网站| 国产精品稀缺呦系列在线| 久久91亚洲精品中文字幕| 色综合久久中文字幕综合网小说| 97久久精品国产| 国产精品视频1区| 欧美激情国产精品| 亚洲第一网站免费视频| 成人激情春色网| 亚洲国产精品国自产拍av秋霞| 日韩av电影在线免费播放| 日韩成人在线网站| 国产成人高潮免费观看精品| 亚洲欧美日韩另类| 韩国精品久久久999| 成人黄色片网站| 国产精品私拍pans大尺度在线| 日韩小视频在线| 欧美电影免费观看大全| 亚洲精品免费在线视频| 国内精品一区二区三区四区| 亚洲女人天堂成人av在线| 亚洲天堂第一页|