作者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/cn.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