vb.net注冊(cè)熱鍵 vb注冊(cè)控件

vb.net 如何制作圖標(biāo)按鈕 ?急急急??!在線(xiàn)等!

窗口邊框(FormBorderStyle)設(shè)為None,窗口(WindowState)設(shè)為Maximized,如果想讓窗口背景透明,將窗口背景顏色和TransparencyKey設(shè)為同一種顏色,按鈕用Label(標(biāo)簽)代替,背景設(shè)為T(mén)ransparent,邊框設(shè)為None,文字位置一般是下中,Label控件支持無(wú)邊框。

創(chuàng)新互聯(lián)建站專(zhuān)注于陽(yáng)江企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,成都做商城網(wǎng)站。陽(yáng)江網(wǎng)站建設(shè)公司,為陽(yáng)江等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

動(dòng)感效果在鼠標(biāo)事件(MouseDown按下,MouseUp抬起,MouseEnter進(jìn)入,MouseLeave離開(kāi))更換指定的圖片;

添加timer控件還可以使用動(dòng)畫(huà)

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Me.Label1.Refresh()

End Sub

快捷鍵用熱鍵

RegisterHotKey

函數(shù)功能:該函數(shù)定義一個(gè)系統(tǒng)范圍的熱鍵。

函數(shù)原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk);

參數(shù):

hWnd:接收熱鍵產(chǎn)生WM_HOTKEY消息的窗口句柄。若該參數(shù)NULL,傳遞給調(diào)用線(xiàn)程的WM_HOTKEY消息必須在消息循環(huán)中中進(jìn)行處理。

id:定義熱鍵的標(biāo)識(shí)符。調(diào)用線(xiàn)程中的其他熱鍵不能使用同樣的標(biāo)識(shí)符。應(yīng)用功能程序必須定義一個(gè)0X0000-0xBFFF范圍的值。一個(gè)共享的動(dòng)態(tài)鏈接庫(kù)(DLL)必須定義一個(gè)0xC000-0xFFFF范圍的值伯GlobalAddAtom函數(shù)返回該范圍)。為了避免與其他動(dòng)態(tài)鏈接庫(kù)定義的熱鍵沖突,一個(gè)DLL必須使用GlobalAddAtom函數(shù)獲得熱鍵的標(biāo)識(shí)符。

fsModifoers:定義為了產(chǎn)生WM_HOTKEY消息而必須與由nVirtKey參數(shù)定義的鍵一起按下的鍵。該參數(shù)可以是如下值的組合:

MOD_ALT:按下的可以是任一Alt鍵。MOD_CONTROL:按下的可以是任一Ctrl鍵。

MOD_SHIFT:按下的可以是任一Shift鍵。

MOD_WIN:按下的可以是任一Windows按鍵。

vk:定義熱鍵的虛擬鍵碼。

返回值:若函數(shù)調(diào)用成功,返回一個(gè)非O值。若函數(shù)調(diào)用失敗,則返回值為0。若要獲得更多的錯(cuò)誤信息,可以調(diào)用GetLastError函數(shù)。

備注:當(dāng)某鍵被接下時(shí),系統(tǒng)在所有的熱鍵中尋找匹配者。一旦找到一個(gè)匹配的熱鍵,系統(tǒng)將把WM_HOTKEY消息傳遞給登記了該熱鍵的線(xiàn)程的消息隊(duì)列。該消息被傳送到隊(duì)列頭部,因此它將在下一輪消息循環(huán)中被移去。該函數(shù)不能將熱鍵同其他線(xiàn)程創(chuàng)建的窗口關(guān)聯(lián)起來(lái)。

若為一熱鍵定義的擊鍵己被其他熱鍵所定義,則RegisterHotKey函數(shù)調(diào)用失敗。

若hWnd參數(shù)標(biāo)識(shí)的窗口已用與id參數(shù)定義的相同的標(biāo)識(shí)符登記了一個(gè)熱鍵,則參數(shù)fsModifiers和vk的新值將替代這些參數(shù)先前定義的值。

若設(shè)置MOD_KEYUP位,則當(dāng)發(fā)生鍵被按下或被彈起的事件時(shí),窗口將發(fā)送WM_HOTKEY消息。

RegisterHotKey可以被用來(lái)在線(xiàn)程之間登記熱鍵。

UnregisterHotKey

函數(shù)功能:該函數(shù)釋放調(diào)用線(xiàn)程先前登記的熱鍵。

函數(shù)原型:BOOL UnregisterHotKey(HWND hWnd,int id);

參數(shù):

hWnd:與被釋放的熱鍵相關(guān)的窗口句柄。若熱鍵不與窗口相關(guān),則該參數(shù)為NULL。

id:定義被釋放的熱鍵的標(biāo)識(shí)符。

返回值:若函數(shù)調(diào)用成功,返回值不為0。若函數(shù)調(diào)用失敗,返回值為0。若要獲得更多的錯(cuò)誤信息,可以調(diào)用GetLastError函數(shù)。

1、首先定義所需要用到的常量

如圖所示,在窗體代碼后定義常量和API函數(shù)

代碼如下:

Public Const WM_HOTKEY As Integer = H312

Public Const MOD_ALT As Integer = H1

Public Const MOD_CONTROL As Integer = H2

Public Const MOD_SHIFT As Integer = H4

Public Const GWL_WNDPROC As Integer = (-4)

Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias "RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean

Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias "UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean

下面過(guò)程是注冊(cè)Ctrl+T的組合鍵為組合鍵,假如注冊(cè)成功,則返回true,反之注冊(cè)失敗則返回false,我們可以根據(jù)返回的結(jié)果判斷并提醒用戶(hù)注冊(cè)的情況。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim isResult As Boolean

isResult=RegisterHotKey(Handle, 0, MOD_CONTROL, Asc("T")) ’注冊(cè)Ctrl+T的組合鍵

If isResult = False Then

MsgBox("注冊(cè)熱鍵Ctrl+T失敗")

End If

End Sub

[apge]

下面過(guò)程為重載WndProc過(guò)程,響應(yīng)熱鍵并處理熱鍵,這里是用來(lái)隱藏和顯示程序主界面。

Protected Overrides Sub WndProc(ByRef m As Message)

If m.Msg = WM_HOTKEY Then

System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")'運(yùn)行當(dāng)空接龍游戲

End If

MyBase.WndProc(m)

End Sub

最后在關(guān)閉窗體的時(shí)候釋放占用的熱鍵,如果前面注冊(cè)失敗的話(huà),則會(huì)出現(xiàn)釋放失敗的結(jié)果。

Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed

Dim isResult As Boolean

isResult=UnRegisterHotKey(Handle, 0)

End Sub

雙擊打開(kāi)指定的程序

Private Sub Label1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.DoubleClick

System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")

End Sub

System.Diagnostics.Process.Start("路徑")打開(kāi)指定程序

先列出這些吧

如何用VB.NET設(shè)置菜單項(xiàng)的熱鍵

不清楚熱鍵和快捷鍵是什么區(qū)別

1.如果你是指Chrl+S這樣的快捷鍵,可以設(shè)置ShortCutKeys屬性,屬性窗口就有可視化編輯器。

2.如果你是指"保存(S)",其中s有下劃線(xiàn)這樣的用Alt+字母來(lái)訪(fǎng)問(wèn)的設(shè)置,應(yīng)該在菜單項(xiàng)的Text屬性中使用符號(hào)。符號(hào)后面的字母將被作為快速訪(fǎng)問(wèn)字符,顯示的時(shí)候不會(huì)被顯示出來(lái),而字母會(huì)自動(dòng)加上下劃線(xiàn)。比如"保存(s)"。

3.和選中標(biāo)記有關(guān)的屬性有兩個(gè)

CheckOnClick 在菜單項(xiàng)上單擊時(shí)是否改變Checked屬性

Checked 設(shè)置/獲取 菜單項(xiàng)是否被選中

4.設(shè)置菜單項(xiàng)的Enabled屬性為False

VB.net的快捷鍵

1. F12:轉(zhuǎn)到定義;Shift+F12:轉(zhuǎn)到引用

2. F5:?jiǎn)?dòng);Ctrl+F5:開(kāi)始執(zhí)行(不調(diào)試);Shift+F5:停止調(diào)試

3. F7:查看代碼;Shift+F7:查看視圖設(shè)計(jì)器

4. Ctrl+Alt+L:解決方案資源管理器

5. Ctrl+Alt+J:對(duì)象瀏覽器

6. F4:顯示屬性窗口

7. Ctrl+Alt+X:工具箱

8. Ctrl+Alt+C類(lèi)視圖

9. Alt+Enter:查看屬性

10.F10:逐過(guò)程調(diào)試

11.F11:逐語(yǔ)句調(diào)試

12.Ctrl+B:新斷點(diǎn)

13.Ctrl+Shift+F9:清除所有斷點(diǎn)

14.Ctrl+Shift+B生成解決方案

15.Shift+Alt+Enter:全屏

16.大綱顯示:Ctrl+M, Ctrl+M:切換大綱顯示展開(kāi);Ctrl+M, Ctrl+L:切換所有大綱顯示;Ctrl+M,Crtl+P停止大綱顯示;Ctrl+M, Ctrl+O:折疊到定義

17.智能感知:Ctrl+J:列出成員;Ctrl+Shift+空格:參數(shù)信息; Ctrl+K,Ctrl+I:快速信息;Alt+右箭頭鍵:完成單詞

vb.net 全局熱鍵

見(jiàn)下面的代碼

Public?Class?Form1

Public?Declare?Auto?Function?RegisterHotKey?Lib?"user32.dll"?Alias?"RegisterHotKey"?(ByVal?hwnd?As?IntPtr,?ByVal?id?As?Integer,?ByVal?fsModifiers?As?Integer,?ByVal?vk?As?Integer)?As?Boolean

Public?Declare?Auto?Function?UnRegisterHotKey?Lib?"user32.dll"?Alias?"UnregisterHotKey"?(ByVal?hwnd?As?IntPtr,?ByVal?id?As?Integer)?As?Boolean

Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load

'注冊(cè)全局熱鍵?

RegisterHotKey(Handle,?0,?0,?Keys.F4)

'第3個(gè)參數(shù)意義:?0=nothing?1?-alt?2-ctrl?3-ctrl+alt?4-shift?5-alt+shift?6-ctrl+shift?7-ctrl+shift+alt

End?Sub

Private?Sub?Form1_Closed(ByVal?sender?As?Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Closed

UnRegisterHotKey(Handle,?0)

End?Sub

Protected?Overrides?Sub?WndProc(ByRef?m?As?Message)

If?m.Msg?=?786?Then

Me.Activate()

End?If

MyBase.WndProc(m)

End?Sub

End?Class

vb.net怎樣給MenuItem設(shè)置熱鍵?

1、選中要設(shè)置熱鍵的菜單項(xiàng);

2、設(shè)置ShortcutKyes屬性即可。

分享標(biāo)題:vb.net注冊(cè)熱鍵 vb注冊(cè)控件
網(wǎng)站URL:http://muchs.cn/article42/hgihhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司做網(wǎng)站、商城網(wǎng)站、網(wǎng)站排名、移動(dòng)網(wǎng)站建設(shè)建站公司

廣告

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

成都seo排名網(wǎng)站優(yōu)化