作者fumizuki (矇面加菲獅)
看板Visual_Basic
標題Re: [VB6 ] 關於程式執行後縮小到右下角
時間Sat Mar 7 16:18:23 2020
很久沒碰系統匣圖示的程式碼了
以前好像是使用微軟提供的元件來顯示系統匣圖示
我推測要這樣改,但不確定是否可行,自己試試看
我不清楚你的程式架構是怎樣
但系統匣圖示也是要提供一個視窗
以視窗的Handle(Me.hWnd)呼叫Windows API,以產生系統匣圖示
這樣額外產生的東西不歸VB管理,結束程式前需要將其釋放
另外,結束程式建議不要直接End,End是無條件直接終止程式
不會執行各表單的Unload事件,就像是工作管理員中按下結束一樣
我當做你的專案是單一表單
或者是這個表單按下結束就直接結束,無需考慮其他表單是否還在執行
如果要考慮其他表單是否還在執行,就要跑迴圈列舉Forms,Unload每個執行中的表單
以下
亮綠色的是說明,另外
標顏色的是需修改的程式
Private Sub Form_Load()
'If App.PrevInstance Then Unload Me
'與問題無關,但建議改成這樣
If App.PrevInstance Then
Unload Me
Exit Sub
End If
App.TaskVisible = False
InitSystemIcon Me.hWnd, Me.icon
End Sub
Private Sub Form_Unload()
'問題2 →
'終止系統匣圖示
RemoveSystemIcon Me.hWnd
'結束整個處理程序
End
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y
As Single)
Dim msg As Long
msg = X / Screen.TwipsPerPixelX
If msg = WM_LBUTTONUP Then PopupMenu myMenu, 0
'問題1 → LBUTTON 滑鼠左鍵,RBUTTON 滑鼠右鍵
'所以請把 WM_LBUTTONUP 改成 WM_RBUTTONUP
End Sub
Private Sub f_exit_Click()
'問題2 → 請把 End 換成載出表單
Unload Me
End Sub
'下面的code是放在模組
'更新 SystemICON 處理
Sub UpdateSystemIcon(hWnd As Long, icon As Object)
SystemIcon.szTip = _
SystemIcon.hIcon = icon
Shell_NotifyIcon NIM_MODIFY, SystemIcon
End Sub
'移除 SystemICON 處理
Sub RemoveSystemIcon(hWnd As Long)
Shell_NotifyIcon NIM_DELETE, SystemIcon
End Sub
--
携帯の待ち受けには
笑顔のMai-Kがいる
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.79.177 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1583569105.A.479.html
1F:推 MOONRAKER: 推板主 03/07 19:23
2F:推 neiltsang: 看不懂 反正就是要推 03/09 06:58
3F:推 NealPope: 完全正解...vb原祖高手 03/11 23:51
4F:推 manforwan: 推 03/12 12:54
5F:推 Iories: 看不懂 先推再說 03/12 13:42
6F:推 neiltsang: 板主人超好我再推一次!!愛你 03/14 17:18