1、登录后关闭新的窗口项目关闭,再次登录新的窗口也是正常的,只是两个图标都没点亮
2、offline.ico图标代码按要求已经加进去了:
1、将上述两个图标复制到项目的Images目录下,
的文件名为offline.ico,
的文件名为online.ico
2、在配置栏增加这个按钮,按钮图标设置为offline.ico,按钮的代码设置为:
If QQClient.Ready Then
QQClient.OpenChatWindow()
Else
Forms("QQClient").Open()
End If
3、假定这个新增按钮名称为"OpenQQ",在菜单的SystemIdle事件增加以下代码:
'此段代码用于显示OpenQQ的未读消息
Static OpenQQ As RibbonMenu.Button
Static LastTime As Date
If OpenQQ Is Nothing Then
OpenQQ = ConfigBar.Items("OpenQQ")
End If
Dim txt As String
If QQClient.Ready
If QQClient.UnreadCount > 0 Then
txt = "(" & QQClient.UnreadCount & "条)"
End If
End If
If OpenQQ.Text <> txt Then
OpenQQ.Text = txt
End If
If OpenQQ.Text > "" Then
Dim ntp As timeSpan = Date.Now - LastTime
If ntp.TotalSeconds >= 0.5 Then
LastTime = Date.Now
If OpenQQ.ForeColor = Color.Red Then
OpenQQ.ForeColor = Color.Transparent
Else
OpenQQ.ForeColor = Color.Red
End If
End If
End If
上面代码利用新增加的按钮标题显示未读新消息数量,并每隔0.5秒切换按钮的字体颜色,形成闪烁效果,以提示用户有新消息。
通过这段代码,你还可以学到一招: 定期执行某项任务,并非一定要通过计划或定时器,望认真体会。
4、将自定义登录窗口的登录按钮的代码设置为:
If QQClient.Ready Then
MessageBox.show("QQClient已经启动,请先关闭","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
End If
QQClient.ServerIP = e.Form.Controls("txtIP").Value '指定服务器IP地址
QQClient.ServerPort = e.Form.Controls("txtPort").Value '指定服务器端口
QQClient.UserName = e.Form.Controls("cmbDepartment").Value & "." & e.Form.Controls("txtUserName").Value '指定登录用户名
QQClient.Password = e.Form.Controls("txtPassword").Value
If QQClient.Start() = True '如果登录成功
e.Form.Controls("btnChat").Enabled = True
Dim msg As String = "恭喜,OpenQQ登录成功!"
If QQClient.ServerMessage > "" Then '如果服务器返回了欢迎信息
msg = msg & QQClient.ServerMessage
End If
popMessage(msg,"提示",PopiconEnum.Infomation,5)
Else '如果登录失败,显示服务器返回错误信息
e.Form.Controls("btnChat").Enabled = False
PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)
End If
5、将OpenQQ客户端事件Connected事件代码设置为:
ConfigBar.Items("OpenQQ").SmallImage = GetImage("online.ico")
这行代码用于在OpenQQ登录成功后,将菜单按钮的图标改为online.ico。
6、最后将OpenQQ客户端事件Disconnected事件代码设置为:
ConfigBar.Items("OpenQQ").SmallImage = GetImage("offline.ico")
这样在OpenQQ离线后,菜单按钮的图标会自动改为offline.ico。
[此贴子已经被作者于2018/4/18 11:36:00编辑过]