vbnet窗口最前 vbnet關(guān)閉一個窗體

vb窗體總是在最前面的設(shè)置

使用WINDOWS API SetWindowPos函數(shù)來設(shè)置,在Form_Load中加入,如下示例即可:

成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗。成都創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網(wǎng)絡公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇成都創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務。

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?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?

 ?Const?HWND_TOPMOST?=?-1?

 ?Const?SWP_SHOWWINDOW?=?H40?

Private?Sub?Form_load()?

Dim?retValue?As?Long?

retValue?=?SetWindowPos(Me.hwnd,?HWND_TOPMOST,?Me.CurrentX,?

 ?Me.CurrentY,?300,?300,?SWP_SHOWWINDOW)?

End?Sub

這樣窗體就能保持在所有窗體的前面了。

SetWindowPos函數(shù)的定義和參數(shù):

使用API函數(shù)之前必須先在程序中聲明如下:

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

其中各參數(shù)的意義如下:

參數(shù) 意義

hwnd Long 欲定位的窗口

hWndInsertAfter Long 窗口句柄。在窗口列表中,窗口hwnd會置于這個窗口句柄的后面

x,y Long 窗口新的x,y坐標

cx,cy Long 指定新的窗口寬度和高度

wFlags Long 包含了旗標的一個整數(shù),是下列之一

返回值 Long 非零表示成功,零表示失敗

下面是部分wFlags參數(shù)和它們的意義:

參數(shù) 意義和使用方法

SWP_DRAWFRAME 圍繞窗口畫一個框

SWP_HIDEWINDOW 隱藏窗口

SWP_NOACTIVATE 不激活窗口

SWP_NOMOVE 保持當前位置 (x和y設(shè)定將被忽略) H2

SWP_NOREDRAW 窗口不自動重畫

SWP_NOSIZE 保持當前大小 (cx和cy會被忽略) H1

SWP_NOZORDER 保持窗口在列表的當前位置 (hWndInsertAfter將被忽略)

SWP_SHOWWINDOW 顯示窗口 H40

SWP_FRAMECHANGED 強迫一條WM_NCCALCSIZE消息進入窗口,即使窗口的大小沒有改變

怎樣讓.NET VB啟動的程序都顯示在最前面?

shell加個參數(shù):

Shell("D:\Program Files\Microsoft Office\Office14\WINWORD.EXE", AppWinStyle.NormalFocus)

VB實現(xiàn)窗口最前但不要取得焦點

Private

Const

SWP_NOACTIVATE

=

H10

'不獲得焦點

Private

Const

SWP_NOMOVE

=

2

Private

Const

SWP_NOSIZE

=

1

Private

Const

Flags

=

SWP_NOMOVE

Or

SWP_NOSIZE

Or

SWP_NOACTIVATE

Private

Const

HWND_TOPMOST

=

-1

Private

Const

HWND_NOTOPMOST

=

-2

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

'設(shè)置窗口總在最前的函數(shù)

Public

Function

SetTopMostWindow(tHWND

As

Long,

Topmost

As

Boolean)

As

Long

If

Topmost

=

True

Then

SetTopMostWindow

=

SetWindowPos(tHWND,

HWND_TOPMOST,

0,

0,

0,

0,

Flags)

Else

SetTopMostWindow

=

SetWindowPos(tHWND,

HWND_NOTOPMOST,

0,

0,

0,

0,

Flags)

SetTopMostWindow

=

False

End

If

End

Function

'使form2窗口總在最前,但不讓form2獲得焦點

Private

Sub

Command1_Click()

SetTopMostWindow

Form2.hwnd,

True

End

Sub

文章名稱:vbnet窗口最前 vbnet關(guān)閉一個窗體
分享URL:http://www.muchs.cn/article14/docssge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、靜態(tài)網(wǎng)站、虛擬主機網(wǎng)站收錄、網(wǎng)站內(nèi)鏈商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司