vb怎麼添加工具欄圖標
⑴ 求 VB 窗體的工具欄圖標
樓主,可以用qq的截圖功能哦,嘻嘻
⑵ VB 添加工具欄(Toolbar)的圖標在哪裡有
在電腦里搜索一下*.ico文件就有很多了
⑶ 如何利用VB修改工具欄中各個圖標
「工具」——「部件」可以增加工具欄中的圖標,一般情況下,只有在用到的時候才添加
⑷ 常用工具欄小圖標 用vb創建界面時用
這個界面數用抄VS做的,所以比襲vb漂亮好多。
這些圖標都是ico格式的文件。你可以自己做了用轉換軟體轉換也行。
系統文件裡面也有類似的圖標,只要能早到就可以用了。一般在%SystemRoot%\system32目錄下有圖標文件的Dll,你可以調用。比如%SystemRoot%\system32\SHELL32.dl
你也可以上網下載Ico圖標,有些可能你能用到
⑸ VB程序如何製作任務欄小圖標
VB托盤程序詳解
很多軟體運行時會在系統托盤區(就是桌面右下角顯示時間的區域)出現一個小圖標,它作為程序運行的一個標志,我們可以通過使用小圖標所彈出的菜單來控制應用程序的狀態。本例就給出了一個功能比較完整的托盤程序,我們可以看到怎樣用API函數Shell_NotifyIcon來添加、刪除、更改托盤圖標;而且例中還演示了為托盤圖標添加右鍵菜單和浮動提示的方法。
程序(附後)用到了Shell_NotifyIcon、SendMessage、CallWindowProc、SetWindowLong等API函數,其中Shell_NotifyIcon是主要的函數,它用來添加、刪除、更改系統托盤區(taskbar status area)的圖標,所以我們先來看看這個函數的聲明和參數:
使用API函數之前必須先在程序中聲明如下:
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
其中各參數的意義如下表:
參數: 意義
dwMessage 為消息設置值,它可以是以下的幾個常數值:0、1、2
NIM_ADD = 0 加入圖標到系統狀態欄中
NIM_MODIFY = 1 修改系統狀態欄中的圖標
NIM_DELETE = 2 刪除系統狀態欄中的圖標
LpData 用以傳入NOTIFYICONDATA數據結構變數,其結構如下所示:
Type NOTIFYICONDATA
cbSize As Long 需填入NOTIFYICONDATA數據結構的長度
HWnd As Long 設置成窗口的句柄
Uid As Long 為圖標所設置的ID值
UFlags As Long 設置uCallbackMessage,hIcon,szTip是否有效
UCallbackMessage As Long 消息編號
HIcon As Long 顯示在狀態欄上的圖標
SzTip As String * 64 提示信息
End Type
返回值 Long,非零表示成功,零表示失敗
在使用這個API函數之前我們應該先定義結構類型NOTIFYICONDATA:
Public Type NOTIFYICONDATA
cbSize As Long HWnd As Long
Uid As Long UFlags As Long
UCallbackMessage As Long
HIcon As Long
SzTip As String * 64
End Type
然後定義一個NOTIFYICONDATA的變數TheData來記錄設置托盤圖標的數據
Private TheData As NOTIFYICONDATA
這時我們就可以使用這個函數來設置系統托盤圖標了,具體方法如下:
1、添加圖標
With TheData
.Uid = 0
.HWnd = frm.HWnd 'frm.HWnd是程序主窗體的句柄
.cbSize = Len(TheData)
.HIcon = frm.Icon.Handle 'frm.Icon.Handle指向主窗體的圖標
.UFlags = NIF_ICON
.UCallbackMessage = TRAY_CALLBACK
'作用是允許返回消息,在下一節中會有詳細解釋。
.UFlags = .UFlags Or NIF_MESSAGE
.cbSize = Len(TheData)
End With
Shell_NotifyIcon NIM_ADD, TheData
'根據前面定義NIM_ADD,設置為「添加模式」,然後添加
2、刪去圖標
With TheData
.UFlags = 0
End With
Shell_NotifyIcon NIM_DELETE, TheData
'根據前面定義NIM_DELETE,設置為「刪除模式」
3、更改圖標
With TheData
.HIcon = pic.Handle
'pic是圖片狂PictureBox,存放圖標文件
.UFlags = NIF_ICON
End With
Shell_NotifyIcon NIM_MODIFY, TheData
'根據前面定義NIM_MODIFY,設置為「更改模式」
4、為圖標添加浮動提示信息
With TheData
.SzTip = tip & vbNullChar
'tip是字元串string,存儲提示信息
.UFlags = NIF_TIP
'指明要對浮動提示進行設置
End With
Shell_NotifyIcon NIM_MODIFY, TheData
'根據前面定義NIM_MODIFY,設置為「修改模式」
通過以上幾段代碼我們就能根據自己需要添加、刪除、更改系統托盤圖標,並能添加系統圖標上的浮動提示信息。但這時的托盤圖標是孤立的,我們並不能利用它來控制應用程序的行為,怎麼辦呢?別急,請往下看……
如果你下載(源程序下載)並運行這個常式序,你會發現如果我們在托盤圖標上點擊滑鼠右鍵,則會彈出一個右鍵菜單。如果點擊相應的菜單項,程序主窗體會隨之變化,這樣就可以控製程序的行為。而如果當主窗體處於最小化狀態時,我們在托盤圖標上點擊左鍵,窗體會恢復到原來的大小。其實實現上述的功能都要依賴於WINDOWS操作系統的消息機制,要完全弄懂這個機制挺不容易的,但是我們可以按下述文字來理解它。
把WINDOWS操作系統看作人的大腦,它接收、處理、並發送各種各樣的信息給我們的各個器官(當然是比喻各個應用程序了),也就是說它是消息的中樞。而每個應用程序(甚至每一個按鈕、標簽、窗體等等統稱為窗口)在運行時都會被分配一個窗口過程WINDOWPROC,由這個窗口過程來接收和處理操作系統發來的消息(實際上存在一個消息隊列),通常情況下這個窗口過程是由操作系統指定的,它會自動的響應並處理一些WINDOWS消息(如窗體移動、最大化、最小化、錯誤信息等)。好,到這我們先停一下,提出一個疑問,這些消息能否由我們自己寫程序來處理呢?答案是肯定的,不過還得藉助API函數的威力了,怎麼用?我們還是先看看這些API函數的定義和參數吧。
程序中用到了SendMessage、CallWindowProc、SetWindowLong等API函數,其中SendMessage函數的作用是將一條消息發給某個窗口;CallWindowProc函數用來發送消息到一個窗口過程;而使用SetWindowLong函數來為窗口結構中為指定的窗口設置屬性。使用API函數之前必須先在程序中聲明如下:
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWnd As Long, ByVal nIndex As Long, ByVal dwNewLong 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
其中各參數的意義如下表:
CallWindowProc函數
參數 意義
lpPrevWndFunc Long,原來的窗口過程地址
HWnd Long,窗口句柄
Msg Long,發送的消息
wParam Long,消息類型,參考wParam參數表
lParam Long,依據wParam參數的不同而不同
返回值 Long,依據發送的消息不同而變化
SetWindowLong函數 :
參數 意義
hwnd Long,欲為其取得信息的窗口的句柄
nIndex Long,請參考GetWindowLong函數的nIndex參數的說明
dwNewLong Long,由nIndex指定的窗口信息的新值
返回值 Long,指定數據的前一個值
SendMessage函數 :
參數 意義
hwnd Long,要接收消息的那個窗口的句柄
wMsg Long,消息的標識符
wParam Long,具體取決於消息
lParam Any,具體取決於消息
返回值 Long,由具體的消息決定
我們要自己寫程序來處理消息,必須先更改窗口的屬性,從原來由默認的窗口過程來處理消息變成由我們自己寫的消息處理過程來處理消息。方法是使用SetWindowLong函數來取得默認窗口過程的地址,然後轉向為我們自己寫的窗口過程的地址,具體的實現方法如下代碼:
'GWL_WNDPROC獲得該窗口的窗口過程的地址,AddressOf是取址函數,NewWindowProc是我們寫的過程
OldWindowProc = SetWindowLong(frm.HWnd, GWL_WNDPROC, AddressOf
NewWindowProc)
然後在NewWindowProc函數中寫入如下代碼,需要注意的是下面代碼中紅色的TRAY_CALLBACK是由托盤區圖標傳來的消息,要讓托盤圖標傳回消息,必須在添加托盤圖標時指定:
Public Function NewWindowProc(ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'如果用戶點擊了托盤中的圖標,則進行判斷是點擊了左鍵還是右鍵
If Msg = TRAY_CALLBACK Then
'如果點擊了左鍵
If lParam = WM_LBUTTONUP Then
'而這時窗體的狀態是最小化時
If TheForm.WindowState = vbMinimized Then _
'恢復到最小化前的窗體狀態
TheForm.WindowState = TheForm.LastState
TheForm.SetFocus
Exit Function
End If
End If
'如果點擊了右鍵
If lParam = WM_RBUTTONUP Then
'則彈出右鍵菜單
TheForm.PopupMenu TheMenu
Exit Function
End If
End If
'如果是其他類型的消息則傳遞給原有默認的窗口函數
NewWindowProc = CallWindowProc(OldWindowProc, HWnd, Msg, wParam, lParam)
End Function
這樣我們就取得並處理了來自托盤圖標的消息,現在的問題是在滑鼠右鍵菜單彈出後,怎麼控製程序主窗體的狀態,這時我們需要用到SendMessage函數來向主窗體發送最大化、最小化、關閉、移動等消息,具體的代碼實現如下,其中HWnd是主窗體的句柄,WM_SYSCOMMAND表示發送的是系統控制類的消息,SC_MOVE、SC_SIZE、SC_RESTORE便是要發送的消息了:
'托盤圖標右鍵菜單上的「移動」項被點擊時
Private Sub mnuTrayMove_Click()
SendMessage HWnd, WM_SYSCOMMAND, SC_MOVE, 0&
End Sub
'托盤圖標右鍵菜單上的「恢復」項被點擊時
Private Sub mnuTrayRestore_Click()
SendMessage HWnd, WM_SYSCOMMAND, SC_RESTORE, 0&
End Sub
'托盤圖標右鍵菜單上的「退出」項被點擊時
Private Sub mnuTraySize_Click()
SendMessage HWnd, WM_SYSCOMMAND, SC_SIZE, 0&
End Sub
最後要提醒你,在程序退出時一定要把窗口過程的地址恢復為默認值,同時把托盤圖標移去哦。
為了學習方便,以下提供了源代碼:
'---------------------------------------------
' 使用系統托盤程序演示
'---------------------------------------------
'程序說明:
' 這是一個比較完整的使用系統托盤的程序實例,包括
'了:添加托盤圖標,刪除托盤圖標,動態改變托盤圖標,
'為托盤圖標添加浮動提示信息,實現托盤圖標的滑鼠右鍵
'菜單等內容。
'-------名稱-------------------作用------------
' Form1 主窗體
' mnuFile,mnuFileExit 文件菜單,菜單項
' mnuTray,mnuTrayClose... 托盤區右鍵菜單,菜單項
'---------------------------------------------
Option Explicit
'LastState變數的作用是標示主窗體原有狀態
Public LastState As Integer
'【VB聲明】
' 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
'【說明】
' 調用一個窗口的窗口函數,將一條消息發給那個窗口。除非消息處理完畢,否則該函數不會返回。SendMessageBynum,
' SendMessageByString是該函數的「類型安全」聲明形式
'【返回值】
' Long,由具體的消息決定
'【參數表】
' hwnd ----------- Long,要接收消息的那個窗口的句柄
' wMsg ----------- Long,消息的標識符
' wParam --------- Long,具體取決於消息
' lParam --------- Any,具體取決於消息
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 WM_SYSCOMMAND = &H112
Private Const SC_MOVE = &HF010&
Private Const SC_RESTORE = &HF120&
Private Const SC_SIZE = &HF000&
'當主窗體載入時
Private Sub Form_Load()
'窗體的WindowState屬性,返回或設置一個值,該值用來指定在運行時窗體窗口的可視狀態
'vbNormal 0 (預設值)正常 。
'VbMinimized 1 最小化(最小化為一個圖標)
'VbMaximized 2 最大化(擴大到最大尺寸)
If WindowState = vbMinimized Then
LastState = vbNormal
Else
LastState = WindowState
End If
'將圖標添加到托盤的函數,參見模塊中的解釋
'注意了這是從主程序到模塊的入口,本例中並沒有直接調用Shell_NotifyIcon函數
AddToTray Me, mnuTray
SetTrayTip "托盤圖標演示,點擊右鍵彈出菜單"
End Sub
'在主窗體Form1大小改變時,相應改變右鍵菜單mnuTray的菜單項的可用屬性Enabled
Private Sub Form_Resize()
Select Case WindowState
'如果窗體最小化了,把菜單項「最大化」「恢復」設為可用,
'而把「最小化」「移動」「大小」三項設為不可用.
'如果這時在托盤圖標上點擊滑鼠右鍵,會發現不可用項變為灰色
Case vbMinimized
mnuTrayMaximize.Enabled = True
mnuTrayMinimize.Enabled = False
mnuTrayMove.Enabled = False
mnuTrayRestore.Enabled = True
mnuTraySize.Enabled = False
'窗體最大化時
Case vbMaximized
mnuTrayMaximize.Enabled = False
mnuTrayMinimize.Enabled = True
mnuTrayMove.Enabled = False
mnuTrayRestore.Enabled = True
mnuTraySize.Enabled = False
'一般狀態下
Case vbNormal
mnuTrayMaximize.Enabled = True
mnuTrayMinimize.Enabled = True
mnuTrayMove.Enabled = True
mnuTrayRestore.Enabled = False
mnuTraySize.Enabled = True
End Select
If WindowState <> vbMinimized Then LastState = WindowState
End Sub
'保證在程序退出時刪除托盤圖標
Private Sub Form_Unload(Cancel As Integer)
RemoveFromTray
End Sub
'「文件」菜單的「退出」項被點擊時
Private Sub mnuFileExit_Click()
Unload Me
End Sub
'托盤圖標右鍵菜單上的「退出」項被點擊時
Private Sub mnuTrayClose_Click()
Unload Me
End Sub
'托盤圖標右鍵菜單上的「最大化」項被點擊時
Private Sub mnuTrayMaximize_Click()
WindowState = vbMaximized
End Sub
'托盤圖標右鍵菜單上的「最小化」項被點擊時
Private Sub mnuTrayMinimize_Click()
WindowState = vbMinimized
End Sub
'托盤圖標右鍵菜單上的「移動」項被點擊時
Private Sub mnuTrayMove_Click()
SendMessage HWnd, WM_SYSCOMMAND, _
SC_MOVE, 0&
End Sub
'托盤圖標右鍵菜單上的「恢復」項被點擊時
Private Sub mnuTrayRestore_Click()
SendMessage HWnd, WM_SYSCOMMAND, _
SC_RESTORE, 0&
End Sub
'托盤圖標右鍵菜單上的「退出」項被點擊時
Private Sub mnuTraySize_Click()
SendMessage HWnd, WM_SYSCOMMAND, _
SC_SIZE, 0&
End Sub
'-----------------------------------------
'以下為模塊中的代碼:
'-----------------------------------------
Option Explicit
Public OldWindowProc As Long
Public TheForm As Form
Public TheMenu As Menu
'【VB聲明】
'Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'【說明】
' 此函數發送消息到一個窗口過程
'【返回值】
' Long,依據發送的消息不同而變化
'【參數表】
' lpPrevWndFunc----- Long,原來的窗口過程地址
' HWnd-------------- Long,窗口句柄
' Msg -------------- Long,發送的消息
' wParam ----------- Long,消息類型,參考wParam參數表
' lParam ----------- Long,依據wParam參數的不同而不同
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'【VB聲明】
' Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'【說明】
' 在窗口結構中為指定的窗口設置信息
'【返回值】
' Long,指定數據的前一個值
'【參數表】
' hwnd ----------- Long,欲為其取得信息的窗口的句柄
' nIndex --------- Long,請參考GetWindowLong函數的nIndex參數的說明
' dwNewLong ------ Long,由nIndex指定的窗口信息的新值
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'【VB聲明】
'Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'【說明】
'【參數表】
'參數dwMessage ---- 為消息設置值,它可以是以下的幾個常數值:0、1、2
'NIM_ADD = 0 加入圖標到系統狀態欄中
'NIM_MODIFY = 1 修改系統狀態欄中的圖標
'NIM_DELETE = 2 刪除系統狀態欄中的圖標
'參數LpData ---- 用以傳入NOTIFYICONDATA數據結構變數,我們也需要在"模塊"中定義其結構如下:
'Type NOTIFYICONDATA
' cbSize As Long 需填入NOTIFYICONDATA數據結構的長度
' HWnd As Long 設置成窗口的句柄
' Uid As Long 為圖標所設置的ID值
' UFlags As Long 用來設置以下三個參數uCallbackMessage、hIcon、szTip是否有效
' UCallbackMessage As Long 消息編號
' HIcon As Long 顯示在狀態欄上的圖標
' SzTip As String * 64 提示信息
'End Type
'---- 其中參數uCallbackMessage、hIcon、szTip也應在模塊中聲明為以下的常量:
'Public Const NIF_MESSAGE = 1
'Public Const NIF_ICON = 2
'Public Const NIF_TIP = 4
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Const WM_USER = &H400
Public Const WM_LBUTTONUP = &H202
Public Const WM_MBUTTONUP = &H208
Public Const WM_RBUTTONUP = &H205
Public Const TRAY_CALLBACK = (WM_USER + 1001&)
Public Const GWL_WNDPROC = (-4)
Public Const GWL_USERDATA = (-21)
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIF_MESSAGE = &H1
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
'記錄 設置托盤圖標的數據 的數據類型NOTIFYICONDATA
Public Type NOTIFYICONDATA
cbSize As Long
HWnd As Long
Uid As Long
UFlags As Long
UCallbackMessage As Long
HIcon As Long
SzTip As String * 64
End Type
'TheData變數記錄設置托盤圖標的數據
Private TheData As NOTIFYICONDATA
' *********************************************
' 新的窗口過程--主程序中採用SetWindowLong函數改變了窗口函數的地址,消息轉向由NewWindowProc處理
' *********************************************
Public Function NewWindowProc(ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'如果用戶點擊了托盤中的圖標,則進行判斷是點擊了左鍵還是右鍵
If Msg = TRAY_CALLBACK Then
'如果點擊了左鍵
If lParam = WM_LBUTTONUP Then
'而這時窗體的狀態是最小化時
If TheForm.WindowState = vbMinimized Then _
'恢復到最小化前的窗體狀態
TheForm.WindowState = TheForm.LastState
TheForm.SetFocus
Exit Function
End If
End If
'如果點擊了右鍵
If lParam = WM_RBUTTONUP Then
'則彈出右鍵菜單
TheForm.PopupMenu TheMenu
Exit Function
End If
End If
'如果是其他類型的消息則傳遞給原有默認的窗口函數
NewWindowProc = CallWindowProc(OldWindowProc, HWnd, Msg, wParam, lParam)
End Function
' *********************************************
' 把主窗體的圖標(Form1.icon屬性可改變)添加到托盤中
' *********************************************
Public Sub AddToTray(frm As Form, mnu As Menu)
'保存當前窗體和菜單信息
Set TheForm = frm
Set TheMenu = mnu
'GWL_WNDPROC獲得該窗口的窗口函數的地址
OldWindowProc = SetWindowLong(frm.HWnd, GWL_WNDPROC, AddressOf NewWindowProc)
'知識點滴:HWnd屬性
'返回窗體或控制項的句柄。語法: object.HWnd
'說明:Microsoft Windows 運行環境,通過給應用程序中的每個窗體和控制項
'分配一個句柄(或 hWnd)來標識它們。hWnd 屬性用於Windows API調用。
'將主窗體圖標添加在托盤中
With TheData
.Uid = 0 '忘了嗎?參考一下前面內容,Uid圖標的序號,做動畫圖標有用
.HWnd = frm.HWnd
.cbSize = Len(TheData)
.HIcon = frm.Icon.Handle
.UFlags = NIF_ICON '指明要對圖標進行設置
.UCallbackMessage = TRAY_CALLBACK
.UFlags = .UFlags Or NIF_MESSAGE '指明要設置圖標或返回信息給主窗體,此句不能省去
.cbSize = Len(TheData) '為什麼呢?我們需要在添加圖標的同時,讓其返回信息
End With '給主窗體,Or的意思是同時進行設置和返回消息
Shell_NotifyIcon NIM_ADD, TheData '根據前面定義NIM_ADD,設置為「添加模式」
End Sub
' *********************************************
' 刪除系統托盤中的圖標
' *********************************************
Public Sub RemoveFromTray()
'刪除托盤中的圖標
With TheData
.UFlags = 0
End With
Shell_NotifyIcon NIM_DELETE, TheData '根據前面定義NIM_DELETE,設置為「刪除模式」
'恢復原有的設置
SetWindowLong TheForm.HWnd, GWL_WNDPROC, OldWindowProc
End Sub
' *********************************************
' 為托盤中的圖標加上浮動提示(也就是滑鼠移上去時出現的提示字條)
' *********************************************
Public Sub SetTrayTip(tip As String)
With TheData
.SzTip = tip & vbNullChar
.UFlags = NIF_TIP '指明要對浮動提示進行設置
End With
Shell_NotifyIcon NIM_MODIFY, TheData '根據前面定義NIM_MODIFY,設置為「修改模式」
End Sub
' *********************************************
' 設置托盤的圖標(在本例中沒有用到,如果要動態改變托盤內顯示的圖標,它非常有用)
' 例如:1、顯示動畫圖標(方法你一定猜到了,對!使用Timer控制項,不斷調用此過程,注意把動畫放在pic數組中)
' 2、程序處於不同狀態時,顯示不同的圖標,方法是類似的
' 有興趣的話試一試吧。
' *********************************************
Public Sub SetTrayIcon(pic As Picture)
'判斷一下pic中存放的是不是圖標
If pic.Type <> vbPicTypeIcon Then Exit Sub
'更換圖標為pic中存放的圖標
With TheData
.HIcon = pic.Handle
.UFlags = NIF_ICON
End With
Shell_NotifyIcon NIM_MODIFY, TheData
End Sub
⑹ vb.net界面設計 的工具欄里的一些基本圖標,比如打開、保存、復制怎麼添加啊
用格式轉換器(格式工廠)把ico格式轉換成其他可識別的格式
然後在添加
下一版步(你的意思是要在界面權設計中 往窗體上添加工具欄嗎?)
工具箱中 ---- 菜單和工具欄 ----- MenuStrip
窗體上方出現 '請再次鍵入'(vs2010中) 的框框 點一下就可以放"打開"什麼的了
右面屬性中找到Image屬性.可以更改你自己的圖片了.
知道了嗎?
還有疑問你就追問 ````赫赫
⑺ vb 怎麼做工具欄就像vb的工具欄一樣
需要添加toolbar和imagelist控制項,工程-部件-microsoft windows common controls 6.0打鉤-確定。
●設置toolbar與imagelist關聯:右鍵單擊toolbar1-屬性-通用-圖像列表-imagelist1;運行中設置用 Set Toolbar1.ImageList = ImageList1
●imagelist設置圖標大小:右鍵單擊imagelist1-屬性-通用-16*16;運行中設置用ImageList1.ImageHeight = 16:ImageList1.ImageWidth = 16;
●imagelist插入圖片:右鍵單擊imagelist1-屬性-圖像-插入圖片;運行中添加用 ImageList1.ListImages.Add 0,"key" , Picture1.Image 0為插入圖片的索引,"key"為圖片關鍵字,picture1.image為插入的圖片。前兩個參數可省略。
●toolbar添加按鈕:右鍵單擊toolbar1-屬性-按鈕-插入按鈕;運行中添加用Toolbar1.Buttons.Add 1, "key", "caption", 0, 1 第一個1為按鈕索引,"key" 為關鍵字,"caption"為按鈕標題,0為樣式值,後一個1指定按鈕圖標為imagelist1中的第一張圖標。其參數全可省略。
●toolbar點擊事件:可以通過判斷Button.Key(按鈕關鍵值)
Button.Caption(按鈕標題)
Button.Image(按鈕圖標在imagelist中的位置)
Button.Index(按鈕索引)來判斷點擊的是哪個按鈕,寫入代碼。例如:
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
If Button.Caption = "caption" Then End'如果點擊工具欄上標題為「caption」的按鈕則退出
End Sub
⑻ VB怎樣給菜單欄加上顏色和圖標
這個問題當然要用到API了,加圖標都要幾個API來配和,顏色不是很清楚,以下是在網上找的看你滿意回不
http://blog.sina.com.cn/s/blog_4b7ab2ac010007xp.html 這個是答圖標
至於顏色我在網上沒有找到,呵呵
⑼ 怎樣在VB中添加工具條
1、在工具欄中添加復選(切換)按鈕
工具欄中的復選按鈕是指當按鈕被按下以後就保持被按下的狀態,只有下次再按才會彈起來,這就是工具欄的復選切換狀態。要實現這樣的效果,必須將它的STYLE屬性設為tbrCheck,這個設置可以在工具欄的屬性頁中完成。方法是右擊工具欄並選擇Properties選項以打開屬性頁,單擊屬性頁的Buttons選項卡,選擇要用的按鈕,將它的形式STYLE設為tbrCheck即可。
2、在工具欄中添加組合框和其他控制項
通過將按鈕的STYLE屬性設為tbrPlaceholder在工具欄中設置空間,可以將組合框和其他控制項添加到工具欄中,我們以組合框為例來看看具體步驟:
1)右擊工具欄並選擇Properties選項打開屬性頁,單擊屬性頁的Buttons選項卡;
2)在要添加組合框的地方添加一個新的按鈕;
3)把新按鈕的STYLE屬性設為tbrPlaceholder,這樣按鈕不會顯現出來,而只是一片空白,用來設置組合框;
4)在width框中輸入一個值,這是預留給組合框的空間的寬度;
5)點擊確定後,在工具欄的空白處新畫一個組合框,注意一定要新畫;
6)其他操作與原來相同。
3、怎樣做出象IE一樣的平面工具欄
IE、WORD等流行軟體的工具欄在通常狀態下是平面的,只有當滑鼠移過時才會突起,這樣的效果通過VB工具欄本身是無法實現的,雖然可以用貼圖的方法來模擬這種效果但卻十分麻煩,簡便的方法是通過調用WIN32 API函數來實現。其思路是用SendMessage函數向工具欄發送設置顯示樣式TB_SETSTYLE的消息來改變工具欄的顯示效果。
⑽ VB中如何對工具欄的各個圖標進行功能設置
Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)
Select Case Button.Index
Case 0
MsgBox "第一個按鈕被按了" Case 1 msgbox "第二個按鈕被按了"
End SubButton.Index是根據你設置的索引值進行判斷的 和樓上兩種專方法屬都可以的