有人知道QQ小图标弹出一个菜单是什么机制么

laser_1987 2011-05-09 02:27:09
想做一个功能实现,类似QQ的右下角的小图标弹出一个QQ的提示框那样!
请问各位大牛是怎么实现的!

跟飞信每次收到消息的那种差不多!
...全文
239 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-05-25
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
laser_1987 2011-05-10
  • 打赏
  • 举报
回复
我也在网上搜了也咨询过其他的人,有朋友推荐说可能用了shell_notifyicon来实现!我不知道上面说用对话框来实现的朋友有没有自己实现过,还是真的知道QQ和飞信或者MSN那种消息提示的机制!
[Quote=引用 4 楼 youcry 的回复:]
那是系统托盘图标的相关操作

typedef struct _NOTIFYICONDATA {
  DWORD cbSize;
  HWND hWnd;
  UINT uID;
  UINT uFlags;
  UINT uCallbackMessage;
  HICON hIcon;
  TCHAR szTip[64];
  DWORD ……
[/Quote]
lzero13199 2011-05-10
  • 打赏
  • 举报
回复
对话框啊
2楼有理~
youcry 2011-05-10
  • 打赏
  • 举报
回复
我是这样做的
BOOL CXXXXDlg::TrayNotifyMsg(DWORD Msg, UINT Icon, CString strTip)
{
//创建托盘图标
if (Icon == NULL)
{
Icon = IDR_MAINFRAME;
}

NOTIFYICONDATA data;
data.cbSize = sizeof(NOTIFYICONDATA);
data.hIcon = (HICON) LoadImage(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(Icon), IMAGE_ICON, 16,16,0);
data.hWnd = this->GetSafeHwnd();
data.uCallbackMessage = WM_TRAYICON;
data.uFlags = NIF_MESSAGE|NIF_TIP|NIF_ICON;
data.uID = IDR_MAINFRAME;

switch(Msg)
{
case NIM_DELETE:
{
data.hIcon = NULL;
data.szTip[0] = '\0';
break;
}
case NIM_ADD:
{
strcpy(data.szTip, strTip);
break;
}
case NIM_MODIFY:
{
strcpy(data.szTip, strTip);
break;
}
}

return Shell_NotifyIcon(Msg, &data);
}
在调用这个函数时,这样写
TrayNotifyMsg(NIM_ADD, IDR_MAINFRAME, "消息提示");

在消息提示里可以写自己的内容
youcry 2011-05-09
  • 打赏
  • 举报
回复
那是系统托盘图标的相关操作

typedef struct _NOTIFYICONDATA {
  DWORD cbSize;
  HWND hWnd;
  UINT uID;
  UINT uFlags;
  UINT uCallbackMessage;
  HICON hIcon;
  TCHAR szTip[64];
  DWORD dwState;
  DWORD dwStateMask;
  TCHAR szInfo[256];
  union {
  UINT uTimeout;
  UINT uVersion;
  };


其中的 szTip 改成自己想要的信息,这样就会在你将鼠标移到右下角的图标上时,
出现你自己设定的相关的信息
至于信息内容的格式化,就要自己设定了,希望对你有帮助
nostopstep 2011-05-09
  • 打赏
  • 举报
回复
网上到处都有这样的例子,随便一搜索
Eleven 2011-05-09
  • 打赏
  • 举报
回复
用对话框模拟就可以了,VS2008SP1、VS2010中有个Sample,DesktopAlertDemo
mudunke775 2011-05-09
  • 打赏
  • 举报
回复
就是一个对话框呗,设置窗口位置就可以了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧