新聞中心
經(jīng)過長時(shí)間學(xué)習(xí)VB.NET窗體,于是和大家分享一下,從VB6到VB.NET的開發(fā)過程中,VB.NET窗體應(yīng)用始終是一個(gè)永恒的話題,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。任何一個(gè) WINDOWS的應(yīng)用程序,都與窗體密切相關(guān),在許多場合,我們都需要對窗體進(jìn)行一些特殊的設(shè)置或操作,本文用VB6和VB.NET相結(jié)合,來說明VB.NET窗體應(yīng)用的特殊問題及處理,以及VB.NET給我們帶來的新的功能!以下下介紹使窗體在其他所有窗體之上(Allway On Top)VB6中實(shí)現(xiàn)(借助API函數(shù)SetWindowPos)

- PrivateDeclareFunction SetWindowPos Lib "user32" (ByVal hwnd AsLong,
_ByVal hWndInsertAfter AsLong, ByVal x AsLong, ByVal y AsLong,
_ByVal cx AsLong, ByVal cy AsLong, ByVal wFlags AsLong) AsLong
#t#hWnd變元是窗口的句柄;x,y是窗口的左上角的坐標(biāo);cx、cy是窗口寬度和高度;hWndInsertAfter變元是窗口清單中hWnd窗口前面的窗口句柄,有四個(gè)可選值:
序號 可 選 值 作 用
1 HWND_BOTTOM 把窗口放在窗口清單的底部
2 HWND_TOP 把窗口放在窗口清單的字符順序的頂部
3 HWND_TOPMOST 把窗口放在窗口清單的頂部
4 HWND_NOTOPMOST 把窗口放在窗口清單的頂部,最上層窗口之下
WFlags變元為整型值,有八個(gè)可選值:
序號 可 選 值 作用
1 SWP_DRAWFRAME 在窗口周圍畫一個(gè)方框
2 SWP_HIDEWINDOW 隱藏窗口
3 SWP_NOACTIVATE 不激活窗口
4 SWP_NOMOVE 保持窗口當(dāng)前位置
5 SWP_NOREDRAW 窗口不自動(dòng)重畫
6 SWP_NOSIZE 保持窗口當(dāng)前尺寸
7 SWP_NOZORDER 保持窗口在窗口清單中的當(dāng)前位置
8 SWP_SHOWWINDOW 顯示窗口
- PrivateDeclareFunction SetWindowPos Lib "user32" (ByVal hwnd AsLong,
_ByVal hWndInsertAfter AsLong, ByVal x AsLong, ByVal y AsLong,
_ByVal cx AsLong, ByVal cy AsLong, ByVal wFlags AsLong) AsLong- PrivateConst SWP_NOMOVE = 2
- PrivateConst SWP_NOSIZE = 1
- PrivateConst FLAGS = SWP_NOMOVE Or SWP_NOSIZE
- PrivateConst HWND_TOPMOST = -1
- PrivateConst HWND_NOTOPMOST = -2
- PrivateSub Command1_Click()
- '把窗體放在最前面:
- res% = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
- EndSub
- PrivateSub Command2_Click()
- '使窗體恢復(fù)普通模式:
- res% = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
- EndSub
在VB.NET窗體中,太簡單了!系統(tǒng)為窗體提供了TopMost屬性,我們將TopMost屬性設(shè)置為True,就實(shí)現(xiàn)了Allways On Top 的功能,要取消此功能,設(shè)置為False即可。
- PrivateSub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) HandlesMyBase.Load- Me.TopMost = True
- EndSub
當(dāng)前標(biāo)題:講述VB.NET窗體特殊問題及處理
當(dāng)前路徑:http://m.fisionsoft.com.cn/article/djephpo.html


咨詢
建站咨詢
