使用ShowWindow函數(shù),便可輕松控制窗口的顯隱,最小化,最大化。

創(chuàng)新互聯(lián)公司專注于永定企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站定制開(kāi)發(fā)。永定網(wǎng)站建設(shè)公司,為永定等地區(qū)提供建站服務(wù)。全流程按需定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
概述
函數(shù)功能:該函數(shù)設(shè)置指定窗口的顯示狀態(tài)。
函數(shù)原型:BOOL ShowWindow(HWND hWnd, int nCmdShow);
*/第一個(gè)參數(shù)為句柄,第二個(gè)參數(shù)選下面的值
#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11
參數(shù)含義
hWnd:指窗口句柄。
nCmdShow:指定窗口如何顯示。如果發(fā)送應(yīng)用程序的程序提供了STARTUPINFO結(jié)構(gòu),則應(yīng)用程序第一次調(diào)用ShowWindow時(shí)該參數(shù)被忽略。否則,在第一次調(diào)用ShowWindow函數(shù)時(shí),該值應(yīng)為在函數(shù)WinMain中nCmdShow參數(shù)。在隨后的調(diào)用中,該參數(shù)可以為下列值之一:
SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使擁有窗口的線程被掛起也會(huì)最小化。在從其他線程最小化窗口時(shí)才使用這個(gè)參數(shù)。
SW_HIDE:隱藏窗口并激活其他窗口。
SW_MAXIMIZE:最大化指定的窗口。
SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一個(gè)頂層窗口。
SW_RESTORE:激活并顯示窗口。如果窗口最小化或最大化,則系統(tǒng)將窗口恢復(fù)到原來(lái)的尺寸和位置。在恢復(fù)最小化窗口時(shí),應(yīng)用程序應(yīng)該指定這個(gè)標(biāo)志。
SW_SHOW:在窗口原來(lái)的位置以原來(lái)的尺寸激活和顯示窗口。
SW_SHOWDEFAULT:依據(jù)在STARTUPINFO結(jié)構(gòu)中指定的SW_FLAG標(biāo)志設(shè)定顯示狀態(tài),STARTUPINFO 結(jié)構(gòu)是由啟動(dòng)應(yīng)用程序的程序傳遞給CreateProcess函數(shù)的。
SW_SHOWMAXIMIZED:激活窗口并將其最大化。
SW_SHOWMINIMIZED:激活窗口并將其最小化。
SW_SHOWMINNOACTIVATE:窗口最小化,激活窗口仍然維持激活狀態(tài)。
SW_SHOWNA:以窗口原來(lái)的狀態(tài)顯示窗口。激活窗口仍然維持激活狀態(tài)。
SW_SHOWNOACTIVATE:以窗口最近一次的大小和狀態(tài)顯示窗口。激活窗口仍然維持激活狀態(tài)。
SW_SHOWNORMAL:激活并顯示一個(gè)窗口。如果窗口被最小化或最大化,系統(tǒng)將其恢復(fù)到原來(lái)的尺寸和大小。應(yīng)用程序在第一次顯示窗口的時(shí)候應(yīng)該指定此標(biāo)志。
不過(guò)順便說(shuō)一句,SendKeys會(huì)偶爾造成指令丟失,不可避免。不管你激活窗口還是最大化窗口或者鎖定都沒(méi)辦法完全避免。
VB聲明
Declare Function ShowWindow Lib "user32" Alias
"ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
說(shuō)明
控制窗口的可見(jiàn)性(在vb里使用:針對(duì)vb窗體及控件,請(qǐng)使用對(duì)應(yīng)的vb屬性)
返回值
Long,如窗口之前是可見(jiàn)的,則返回TRUE(非零),否則返回FALSE(零)
參數(shù)表
參數(shù)
類型及說(shuō)明
hwnd
Long,窗口句柄,要向這個(gè)窗口應(yīng)用由nCmdShow指定的命令
nCmdShow
Long,為窗口指定可視性方面的一個(gè)命令。請(qǐng)用下述任何一個(gè)常數(shù)
SW_HIDE
隱藏窗口,活動(dòng)狀態(tài)給令一個(gè)窗口
SW_MINIMIZE
最小化窗口,活動(dòng)狀態(tài)給令一個(gè)窗口
SW_RESTORE
用原來(lái)的大小和位置顯示一個(gè)窗口,同時(shí)令其進(jìn)入活動(dòng)狀態(tài)
SW_SHOW
用當(dāng)前的大小和位置顯示一個(gè)窗口,同時(shí)令其進(jìn)入活動(dòng)狀態(tài)
SW_SHOWMAXIMIZED
最大化窗口,并將其激活
SW_SHOWMINIMIZED
最小化窗口,并將其激活
SW_SHOWMINNOACTIVE
最小化一個(gè)窗口,同時(shí)不改變活動(dòng)窗口
SW_SHOWNA
用當(dāng)前的大小和位置顯示一個(gè)窗口,不改變活動(dòng)窗口
SW_SHOWNOACTIVATE
用最近的大小和位置顯示一個(gè)窗口,同時(shí)不改變活動(dòng)窗口
SW_SHOWNORMAL
與SW_RESTORE相同
Dim F1 As New Datasystem.Form2 '實(shí)例化窗體
For Each na As Form In Application.OpenForms '打開(kāi)窗體的集合
If na.ProductName = F1.ProductName AndAlso na.Name = F1.Name 0 Then '判斷程序集的產(chǎn)品名稱和窗體名稱是否已存在打開(kāi)的窗體中
If na.WindowState = FormWindowState.Minimized Then '判斷窗體是否最小化
na.WindowState = FormWindowState.Normal '還原窗體
End If
na.Activate() '激活窗體
Return '返回
End If
Next
F1.Show() '如果沒(méi)有打開(kāi)的窗體中未找到,重新打開(kāi)窗體
Declare Function OpenIcon Lib "user32" Alias
"OpenIcon" (ByVal hwnd As Long) As Long
說(shuō)明
恢復(fù)一個(gè)最小化的程序,并將其激活
返回值
Long,非零表示成功,零表示失敗。會(huì)設(shè)置GetLastError
參數(shù)表
參數(shù)
類型及說(shuō)明
hwnd
Long,欲恢復(fù)的窗口
注解
針對(duì)vb窗體,應(yīng)使用vb的WindowState屬性
看起來(lái)是鼠標(biāo)按住不放情況下導(dǎo)致焦點(diǎn)還保持在新建線程的窗口,然后又循環(huán)導(dǎo)致焦點(diǎn)切來(lái)切去引起閃爍。
試下在循環(huán)中的執(zhí)行代碼前加上 mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) '釋放鼠標(biāo)左鍵
網(wǎng)站題目:vb.net激活窗口,vb打開(kāi)代碼窗口的方法
鏈接地址:http://chinadenli.net/article27/dsgjscj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、做網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)