Re: [VB6 ] 關於程式執行後縮小到右下角

看板Visual_Basic作者 (矇面加菲獅)時間4年前 (2020/03/07 16:18), 編輯推噓6(600)
留言6則, 5人參與, 4年前最新討論串2/2 (看更多)
很久沒碰系統匣圖示的程式碼了 以前好像是使用微軟提供的元件來顯示系統匣圖示 我推測要這樣改,但不確定是否可行,自己試試看 我不清楚你的程式架構是怎樣 但系統匣圖示也是要提供一個視窗 以視窗的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://www.ptt.cc/bbs/Visual_Basic/M.1583569105.A.479.html

03/07 19:23, 4年前 , 1F
推板主
03/07 19:23, 1F

03/09 06:58, 4年前 , 2F
看不懂 反正就是要推
03/09 06:58, 2F

03/11 23:51, 4年前 , 3F
完全正解...vb原祖高手
03/11 23:51, 3F

03/12 12:54, 4年前 , 4F
03/12 12:54, 4F

03/12 13:42, 4年前 , 5F
看不懂 先推再說
03/12 13:42, 5F

03/14 17:18, 4年前 , 6F
板主人超好我再推一次!!愛你
03/14 17:18, 6F
文章代碼(AID): #1UOrZHHv (Visual_Basic)
文章代碼(AID): #1UOrZHHv (Visual_Basic)