Re: [VB6 ] 关于程式执行后缩小到右下角

楼主: fumizuki (蒙面加菲狮)   2020-03-07 16:18:23
很久没碰系统匣图示的程式码了
以前好像是使用微软提供的元件来显示系统匣图示
我推测要这样改,但不确定是否可行,自己试试看
我不清楚你的程式架构是怎样
但系统匣图示也是要提供一个视窗
以视窗的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
作者: MOONRAKER (㊣牛鹤鳗毛人)   2020-03-07 19:23:00
推板主
作者: neiltsang (CatLulu)   2020-03-09 06:58:00
看不懂 反正就是要推
作者: NealPope (尼尔教皇)   2020-03-11 23:51:00
完全正解...vb原祖高手
作者: manforwan (QQ)   2020-03-12 12:54:00
作者: Iories (无法克制)   2020-03-12 13:42:00
看不懂 先推再说
作者: neiltsang (CatLulu)   2020-03-14 17:18:00
板主人超好我再推一次!!爱你

Links booklink

Contact Us: admin [ a t ] ucptt.com