您的位置:首页 > 编程语言 > VB

[VB.NET]VB.NET中如何实现QQ消息的效果?

2008-12-26 22:17 567 查看



<script type="text/javascript"><!--
google_ad_client = "pub-8333940862668978";
/* 728x90, 创建于 08-11-30 */
google_ad_slot = "4485230109";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

VB.NET中如何实现QQ消息的效果?
在WINFORM程序运行的时候任务栏中会出现一个图标,类似于QQ企鹅。
问题一:程序最小化以后,通过双击图标的什么事件或者方法可以让程序窗体还原并且显示在屏幕的最前面?(注意,程序不是被HIDE了,所以不能用show的方法)
问题二:怎样实现类似QQ图标消息通知的功能。
比如当收到好友的消息时,企鹅头像变成好友的图像,双击图标的时候跳出的是聊天窗口;而当收到的是系统消息时,企鹅头像变成喇叭图像,双击图标时跳出的是系统消息通知窗口。

请教各位大侠了,我是新人,分不多,全部20分送上。
__________________________________________________________________________
http://cache.baidu.com/c?word=vb,net,����&url=http://www.newasp.net/tech/net/11905.html&p=c679ce0386cc47ae03fbc7710d1d95&user=baidu
就是一个 托盘
__________________________________________________________________________
谢谢舞者的回复,托盘的问题我已经解决,问题的难点是要让指定的窗口显示在屏幕的最前面,类似于me.bringtofront,不过不是这么写的。
__________________________________________________________________________
没人回复,自己继续顶
__________________________________________________________________________
继续顶
__________________________________________________________________________
再顶一下
__________________________________________________________________________
窗体本身就有一个置顶的选项
__________________________________________________________________________
晕倒,拜托,那是始终保持在顶部好不好?看清题意了,是最小化以后再通过其他事件传递的方法让他重新出现在顶部!
__________________________________________________________________________
CSDN是不是没人了?问什么问题都找不到答案。
__________________________________________________________________________
还没有找到答案,自己使劲往上顶,帖子要沉了!!
__________________________________________________________________________
还没有找到答案,自己使劲往上顶,帖子要沉了!!
__________________________________________________________________________
还没有找到答案,自己使劲往上顶,帖子要沉了!!
__________________________________________________________________________
还没有找到答案,自己使劲往上顶,帖子要沉了!!
__________________________________________________________________________
还没有找到答案,自己使劲往上顶,帖子要沉了!!
__________________________________________________________________________
me.activte
__________________________________________________________________________
不对,这个已经试过了,没用
__________________________________________________________________________
顶起,
我也在做问题二的功能
问题一为什么不用hide()来做呢??
我是这样实现的啊,有什么问题吗??
最小化事件
Private Sub server_min_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
If Me.WindowState = FormWindowState.Minimized Then
Me.Hide()
NotifyIcon1.Visible = True
End If
End Sub
''鼠标双击事件
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Show()
Me.WindowState = FormWindowState.Maximized
End If

End Sub
__________________________________________________________________________
我不太明白问题的描述。窗体有一个TopMost属性,可以显示在最前面。
PS:同意楼上的代码。
__________________________________________________________________________
在窗口显示后让它得到焦点就行了。me.focus
__________________________________________________________________________
关注ING!
__________________________________________________________________________
我说一下我现在的做法吧
公共变量 judge_int as integer ''判断窗体是否已经打开,打开状态为1,关闭状态为0
在MDI容器的主窗体菜单ToolStripMenuItem的点击事件中写到:
If judge_int = 0 Then
Dim f5 As New form2
f5.MdiParent = Me
f5.Show()
judge_int = 1
Else
''以下msgbox处为需要修改部分,我不想用提示消息框的方法,
''能不能做到直接打开form2窗体?不是重复打开。
MsgBox("窗体已经打开,是否被最小化了!")
End If
__________________________________________________________________________
是我表述不够清楚还是大家不理解这个做法的实际用途和意义啊?
帖子已经挂上去一个多星期了,到现在还没找到解决方法,急切盼望高人指点啊!!
[color=#FF0000]注意关键问题:已经最小化的窗体(不是隐藏)或者被其他窗体覆盖的非活动窗体,重新显示在MDI窗体的最前面。不是永远置前!如果父窗体也被最小化了,点击NotifyIcon1图标的时候,用什么办法展现父窗体,同时将指定的子窗体显示在MDI窗体的最前面?[/color]
__________________________________________________________________________
''鼠标双击事件
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Show()
Me.WindowState = FormWindowState.Maximized
f5.MdiParent = Me
f5.WindowState = FormWindowState.Normal
End If
End Sub
不知道对否?你试试看
__________________________________________________________________________
错了,你这个也只是改变窗体大小
__________________________________________________________________________
Me.WindowState = FormWindowState.Maximized ‘让MDI窗体最大化显示出来
f5.MdiParent = Me
f5.WindowState = FormWindowState.Normal ’显示你的form2窗体
‘Normal按原来的大小显示出来并没有改变大小
__________________________________________________________________________
上述代码只对最小化了的主窗体有作用(Me.WindowState = FormWindowState.Maximized ),对于主窗体里面的子窗体好像没反应呢。
__________________________________________________________________________
下面的才是对子窗体的操作
f5.MdiParent = Me
f5.WindowState = FormWindowState.Normal
__________________________________________________________________________
我当然知道了,就是说下面写跟没写是一样
__________________________________________________________________________
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息