1樓:匿名使用者
1全部vb的實現方法
我們先來看看setwindowpos函式的定義和引數:
使用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 long 欲定位的視窗
hwndinsertafter long 視窗控制代碼。在視窗列表中,視窗hwnd會置於這個視窗控制代碼的後面
x,y long 視窗新的x,y座標
cx,cy long 指定新的視窗寬度和高度
wflags long 包含了旗標的一個整數,是下列之一
返回值 long 非零表示成功,零表示失敗
下面是部分wflags引數和它們的意義:
引數 意義和使用方法
swp_drawframe 圍繞視窗畫一個框
swp_hidewindow 隱藏視窗
swp_noactivate 不啟用視窗
swp_nomove 保持當前位置 (x和y設定將被忽略) &h2
swp_noredraw 視窗不自動重畫
swp_nosize 保持當前大小 (cx和cy會被忽略) &h1
swp_nozorder 保持視窗在列表的當前位置 (hwndinsertafter將被忽略)
swp_showwindow 顯示視窗 &h40
swp_framechanged 強迫一條wm_nccalcsize訊息進入視窗,即使視窗的大小沒有改變
函式的使用很簡單,我們只須在form_load中加入如下語句即可:
retvalue = setwindowpos(me.hwnd, hwnd_topmost, me.currentx, me.
currenty, 300, 300, swp_showwindow)
這樣窗體就能保持在所有窗體的前面了。
為了學習方便,下面提供了原始碼:
註釋:-------------------------------------------
註釋: 讓一個窗體總是處於最前的例子
註釋:-------------------------------------------
註釋:程式說明:
註釋:本例應用setwindowpos函式,設定窗體的顯示屬性
註釋:來實現讓一個窗體總是處於其他窗體的前面而不會
註釋:被其他窗體所遮住。
註釋:-------------------------------------------
option explicit
註釋:【vb宣告】
註釋: 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
註釋:【說明】
註釋: 這個函式能為視窗指定一個新位置和狀態。它也可改變視窗在內部視窗列表中的位置。
該函式與deferwindowpos函式相似,只是它的作用是立即表現出來的(在vb裡使用:針對vb窗體,如它們在win32下遮蔽或最小化,則需重設最頂部狀態。如有必要,請用一個子類處理模組來重設最頂部狀態
註釋:【返回值】
註釋: long,非零表示成功,零表示失敗。會設定getlasterror
註釋:【備註】
註釋: 視窗成為最頂級視窗後,它下屬的所有視窗也會進入最頂級。一旦將其設為非最頂級,則它的所有下屬和物主視窗也會轉為非最頂級。
z序列用垂直於螢幕的一根假想z軸量化這種從頂部到底部排列的視窗順序
註釋:【參數列】
註釋: hwnd ----------- long,欲定位的視窗
註釋: hwndinsertafter - long,視窗控制代碼。在視窗列表中,視窗hwnd會置於這個視窗控制代碼的後面。也可能選用下述值之一:
註釋: hwnd_bottom 將視窗置於視窗列表底部
註釋: hwnd_top 將視窗置於z序列的頂部;z序列代表在分級結構中,視窗針對一個給定級別的視窗顯示的順序
註釋: hwnd_topmost 將視窗置於列表頂部,並位於任何最頂部視窗的前面 -1
註釋: hwnd_notopmost 將視窗置於列表頂部,並位於任何最頂部視窗的後面 -2
註釋: x -------------- long,視窗新的x座標。如hwnd是一個子視窗,則x用父視窗的客戶區座標表示
註釋: y -------------- long,視窗新的y座標。如hwnd是一個子視窗,則y用父視窗的客戶區座標表示
註釋: cx ------------- long,指定新的視窗寬度
註釋: cy ------------- long,指定新的視窗高度
註釋: wflags --------- long,包含了旗標的一個整數,是下列之一:
註釋: swp_drawframe 圍繞視窗畫一個框
註釋: swp_hidewindow 隱藏視窗
註釋: swp_noactivate 不啟用視窗 &h10
註釋: swp_nomove 保持當前位置 (x和y設定將被忽略) &h2
註釋: swp_noredraw 視窗不自動重畫
註釋: swp_nosize 保持當前大小 (cx和cy會被忽略) &h1
註釋: swp_nozorder 保持視窗在列表的當前位置 (hwndinsertafter將被忽略)
註釋: swp_showwindow 顯示視窗 &h40
註釋: swp_framechanged 強迫一條wm_nccalcsize訊息進入視窗,即使視窗的大小沒有改變
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
註釋:將窗體設定為處於所有視窗的頂層,注意在 vb 中執行時,
''可能不行,但編譯成exe後就可以了
retvalue = setwindowpos(me.hwnd, hwnd_topmost, me.currentx,
me.currenty, 300, 300, swp_showwindow)
end sub
2樓:匿名使用者
用什麼語言實現,說清楚點
尋求一個老歌曲,尋求一些老歌
我的是 你發郵件說明,我把你郵箱忘了,不好意思了。恐怖的李小剛啊。紅花紅顏 人 海 茫 茫 天 涯 漫 漫。雄 鷹 展 翅 逍 遙 江 天。江 湖 恩 仇 人 間 情。幹 戈 玉 帛 更 無 緣。風 悽 悽 雨 綿 綿。怨 恨 未 了 情 意 猶 添。親 人 仇 人 紛 紛 別。幾 次 傷 悲 幾 ...
尋求教育10歲女孩子的方法,尋求一個教育10歲女孩子的方法?
說教是最不對症的方式,而且往往是適得其反!要想交流,使你和孩子能夠良好溝通,首先是地位平等,然後是換位思考,最後達到可以互相理解尊重!個性強,證明她喜愛爭強,而愛哭,確是她內心脆弱的表現!十歲孩子需要引導,聰明而不好學,一定和家長有直接關係,平常只關心吃穿,忽視孩子學習,使孩子有心事也無處傾述 另外...
尋求電影的名字,尋求一個電影的名字
假如愛有天意 也叫 不可不信緣 是同一部電影編劇 郭在容 jae young kwak 導演 郭在容 jae young kwak 主演 曹承佑 seung woo cho 孫藝珍 ye jin son 趙寅成 in seong jo 官方 www.classicromance.co.kr製片國家 ...