驚現高分 100分懸賞!追加100分!VB如何實現窗體置於最前端,並且不是啟用窗體

時間 2022-10-07 02:11:01

1樓:匿名使用者

我看見你這個問題了,研究了半天始終是不太理想,不過我還是告訴你我的答案吧:

用setwindowpos將窗體至於最前..用sendmessage給窗體傳送取消啟用的訊息可以達到你的要求.

以下是我幫你寫的**:

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 sendmessage lib "user32" alias "sendmessagea" (byval hwnd as long, byval wmsg as long, byval wparam as long, lparam as any) as long

private const hwnd_notopmost = -2

private const hwnd_topmost = -1

private sub form_load()

'//將窗體至於最前..

setwindowpos me.hwnd, hwnd_topmost, 0, 0, 0, 0, swp_nosize or swp_nomove

end sub

private sub form_activate()

'//我的問題就在這裡:當窗體第一次啟用的時候傳送取消啟用的訊息可以成功.但是當這個窗體取消焦點,在獲得焦點的時候,怎麼也啟用不了這裡面的**,沒法我只能用迴圈來解決了...

dodoevents

sendmessage me.hwnd, wm_ncactivate, 0, 0

loop

end sub

我想告訴你的就是 sendmessage me.hwnd, wm_ncactivate, 0, 0 這句就是取消啟用的命令.

2樓:手機使用者

我可以永遠讓窗體居前,執行資源管理器時不會被遮掩新增乙個timer控制項,將interval屬性設為100public 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

end sub

3樓:匿名使用者

新增乙個timer控制項,interval=1private sub timer1_timer()form1.show

end sub

驚現高分:100分懸賞!追加100分!vb如何獲得視窗標題,並且跟隨指定視窗!

4樓:匿名使用者

'新建乙個form1,在forrm1上放乙個timer1。

private declare function getforegroundwindow lib "user32" () as long

private declare function getwindowtext lib "user32" alias "getwindowtexta" (byval hwnd as long, byval lpstring as string, byval cch 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

private declare function getwindowrect lib "user32" (byval hwnd as long, wndrect as rect) as long

private type rect

x as long

y as long

right as long

bottom as long

end type

dim 控制代碼 as long, 位置 as rect, 空間 as string

private sub form_load()

timer1.interval = 100

timer1.enabled = true

end sub

private sub timer1_timer()

空間 = space(255)

控制代碼 = getforegroundwindow&

getwindowtext 控制代碼, 空間, 255

getwindowrect 控制代碼, 位置

if instr(1, 空間, "計算") > 0 then '你要跟隨的指定視窗的標題,如「計算器」,經過改良後只要標題的一部分就行。

setwindowpos me.hwnd, 1, 位置.x, 位置.y, 0, 0, swp_nosize '如需要將vb視窗置頂,把1改為-1即可。

end if

end sub

5樓:匿名使用者

問題就是你連api都不會 你怎麼去得其他程式的xy啊 api就好辦了

在vb裡怎麼實現窗體永遠置於最上方

6樓:晉彗雲

開啟form2的時候用form2.showdailog(),不要用show

在form2的sizechange事件中寫if form2.windowstate=minimized then

form1.windowstate=minimizedendif

vb程式題,幫忙來解答一下!懸賞100分

7樓:

一1 b

2 c3 a

4 c5 d

6 d (應該是al)

7 沒找到對的,應該是z=x:x=y:y=z二1 (a>=b) and (a<>c)

2 false

3 毫秒

4 dim a(1 to 5,-2 to 6) as string5 字元型

6 -1

7 事件

8 print "****"

vb 如何讓窗體置頂 永遠顯示在最前面?本來就有乙個窗體是置頂的了 現在想開發乙個來覆蓋它的置頂?

8樓:匿名使用者

右鍵工程---工程屬性---啟動物件

啟動物件選擇你要置頂的就可以了

9樓:風雪劍無痕

好霸道啊

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)

private sub form_load()

timer1.interval = 10

timer1.enabled = true

end sub

private sub timer1_timer()

setwindowpos me.hwnd, -1, 0, 0, 0, 0, 3

end sub

方法雖然很齷齪,但很管用,我在想別的程式如果也象這樣會怎樣

vb窗體總是在最前面的設定

10樓:匿名使用者

使用windows api setwindowpos函式來設定,在form_load中加入,如下示例即可:

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函式的定義和引數:

使用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訊息進入視窗,即使視窗的大小沒有改變

高分求助幾個簡單問題 100分,高分求助幾個免疫學的問題,求詳細解答,答案滿意者再附加100分

熱處理的作用就是提高材料的機械效能 消除殘餘應力和改善金屬的切削加工性。按照熱處理不同的目的,熱處理工藝可分為兩大類 預備熱處理和最終熱處理。1 預備熱處理 預備熱處理的目的是改善加工效能 消除內應力和為最終熱處理準備良好的金相組織。其熱處理工藝有退火 正火 時效 調質等。1 退火和正火 退火和正火...

高分求解幾個問題100分

首先8800gts 是較早開發的產品,對應的是高階市場。其成本較大,良品率低,加之麗台是個老品牌,其顯示卡用料豪華,做工優秀,於是價錢稍高。hd3850和8800gts不是乙個公司的產品了,效能不能用流處理器數量來衡量。3850對應的市場比8800gts低半個檔次,開發也比較晚。55nm的製程可以在...

懸賞100分求名字,懸賞100高分求公司名字,公司起什麼名字好?

馬子珺 此名得分 90分 姓名筆畫數分別是 10 3 12 子 智勇雙全,清雅榮貴,中年勞,晚年隆昌,女人溫和賢淑。水 珺 字型檔中沒有此字的姓名學解釋。木 馬晨竣 此名得分 99分 姓名筆畫數分別是 10 11 12 晨 天生聰明,清雅榮貴,中年成功隆昌,出國之格,幸福之字。金 竣 名利雙收,出外...

高分求解電腦宕機問題!追加100分

1。先說軟體 有條件的話找個u盤把你硬碟裡自己重要的檔案拷過去。然後把硬碟格了重新分割槽,然後裝個系統。2.重灌系統還不行的話,就是你的硬體出問題了。你把你的記憶體和顯示卡 獨立 拔下來你橡皮把金手指擦一下。再插上要是問題還沒解決,就開始懷疑你硬體有問題了。有條件的話再找點硬體把你的換下來試試。第一...

100分高分懸賞!!幫我解決兩個問題

經常雙手背朝後插入袖筒,駝背 指甲上塗一點風油精或是用薑片塗抹一下,你不自覺的時候去咬就會覺得辣了,就不會再去咬了,慢慢地習慣了就不會再咬指甲了。至於駝背,我以前上學的時候有一點,老是被老媽從後面打,後來因為愛漂亮了,自己提醒自己要注意,慢慢習慣就好了。駝背是比較普遍的現象,多數的疾病並非疾病所致,...