| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1190 人关注过本帖
标题:关于MDI窗口托盘的问题
取消只看楼主 加入收藏
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
结帖率:78.95%
收藏
已结贴  问题点数:20 回复次数:10 
关于MDI窗口托盘的问题
我想实现MDI窗口的托盘,普通FORM托盘的代码不适合使用。
盼各位分享一下代码,跪谢(如有托盘闪烁的更好)
搜索更多相关主题的帖子: 托盘 
2015-04-23 15:05
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
这种求助帖就那么不受人待见吗?
2015-04-27 08:52
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
多谢,我马上去试下
另外,下面这段,用RESIZE判断的话效果有没有区别?

以下是引用lianyicq在2015-4-27 09:40:22的发言:
Private Sub minimize_Click()
minimize_to_tray
End Sub
自己按需修改调整
2015-04-27 10:50
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
我调整了之后放入,同时加入了托盘的右键菜单:显示窗口和退出
但是显示窗口点击时要点击两次才能反应,这是什么原因?

Dim nid As NOTIFYICONDATA ' trayicon variable
Sub minimize_to_tray()
Me.Hide
nid.cbSize = Len(nid)
nid.hwnd = Me.hwnd
nid.uId = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallBackMessage = WM_MOUSEMOVE
nid.hIcon = Me.Icon ' the icon will be your Form1 project icon
nid.szTip = "处理平台" & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
Private Sub MDIForm_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Long
Dim sFilter As String
msg = X / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
  Me.PopupMenu Pomenu
Case WM_RBUTTONDBLCLK
End Select

End Sub
Private Sub MDIForm_Resize()
  If Me.WindowState = vbMinimized Then
    minimize_to_tray
  Else
    Shell_NotifyIcon NIM_DELETE, nid
  End If
End Sub

Private Sub MDIForm_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid ' del tray icon
End Sub
Private Sub MDIForm_Load()
Shell_NotifyIcon NIM_DELETE, nid ' del tray icon
End Sub

Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Shell_NotifyIcon NIM_DELETE, nid ' del tray icon
Unload Me
End Sub

Private Sub showw_click()
  Me.Show
  Me.WindowState = vbNormal
End Sub
Private Sub quitp_click()
Unload Me
End Sub

[ 本帖最后由 linandceline 于 2015-4-30 13:45 编辑 ]
2015-04-30 09:41
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
OK,解决。
能说明一下原因么?
2015-04-30 14:16
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
又有个问题出现。我在未最小化时用鼠标在窗口内部晃动一下,结果出现菜单了
毫无解决头绪,求助。
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-05-14 10:10
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
就是下面这部分语句,而且我试过了,无论Me.PopupMenu Pomenu放到哪个条件,晃动鼠标还是会出现菜单
Select Case msg
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Case WM_LBUTTONDBLCLK
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
  Me.PopupMenu Pomenu
Case WM_RBUTTONDBLCLK
End Select
2015-05-14 10:45
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
我刚换了语句,试了下还未发现问题
    If Button = 2 Then
        Me.PopupMenu Pomenu
    End If
2015-05-14 10:50
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 12楼 lianyicq
不好意思啊,还是要弱弱问一句,这样会不会比较复杂了?
直接用BOTTON值会不会更好?有弊病么?
2015-05-14 10:58
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
恩,这个我试过了,不加检测的确是会出现菜单
多谢耐心指教
2015-05-14 11:53
快速回复:关于MDI窗口托盘的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028118 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved