社区
C语言
帖子详情
关于Shell_NotifyIcon函数的问题!!!!
wxlfh
2003-01-06 04:29:55
我知道这个函数的作用是在任务栏里添加 修改 或者删除图标的。
我的问题是,添加一个图标后,怎么与用户交互??
即,这个图标怎样接受用户的动作。譬如,在图标上鼠标的一个右击动作。
请各位高手指教。越详细越好。
...全文
200
12
打赏
收藏
关于Shell_NotifyIcon函数的问题!!!!
我知道这个函数的作用是在任务栏里添加 修改 或者删除图标的。 我的问题是,添加一个图标后,怎么与用户交互?? 即,这个图标怎样接受用户的动作。譬如,在图标上鼠标的一个右击动作。 请各位高手指教。越详细越好。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxlfh
2003-04-15
打赏
举报
回复
我的E-MAIL是: wxlfh@163.com
fireseed
2003-03-10
打赏
举报
回复
给我发短信告诉我你的邮箱,我给你发一个例子
本人制作
QiHY
2003-03-10
打赏
举报
回复
NotifyIconData 后面应该是 . 不是 -> ,sorry
QiHY
2003-03-10
打赏
举报
回复
#define UM_NOTIFY 888 //可随便取一个用户消息id值
//产生icon
NOTIFYICONDATA NotifyIconData;
NotifyIconData->cbSize = sizeof(NOTIFYICONDATA);
NotifyIconData->hWnd = hWnd;
NotifyIconData->uID = 1;
NotifyIconData->uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
//点击icon时对应的消息id
NotifyIconData->uCallbackMessage = UM_NOTIFY;
NotifyIconData->hIcon = LoadIcon(hInst,(LPCTSTR)IDI_HIDEWINDOW);
sprintf(pNotifyIconData->szTip,"HideWindow ^_^");
NotifyIconData->uVersion = NOTIFYICON_VERSION;
Shell_NotifyIcon(NIM_ADD,pNotifyIconData);
Shell_NotifyIcon(NIM_SETVERSION,pNotifyIconData);
//处理UM_NOTIFY消息
case UM_NOTIFY:
switch(lParam)
{
case WM_CONTEXTMENU: //右键单击
DisplayContextMenu(hWnd);
break;
}
//显示菜单
VOID DisplayContextMenu(HWND hwnd)
{
HMENU hmenu; // top-level menu
HMENU hmenuTrackPopup; // shortcut menu
POINT pt;
int nMouse[3]={0};
//pt.x=100; pt.y=100;
GetCursorPos(&pt);
if ((hmenu = LoadMenu(hInst, (LPCTSTR)IDC_HIDEWINDOW)) == NULL)
return;
hmenuTrackPopup = GetSubMenu(hmenu, 0);
SetForegroundWindow(hwnd);
TrackPopupMenu(hmenuTrackPopup,
TPM_LEFTALIGN | TPM_RIGHTBUTTON,
pt.x, pt.y, 0, hwnd, NULL);
PostMessage(hwnd,WM_NULL,0,0);
DestroyMenu(hmenu);
}
wxlfh
2003-01-07
打赏
举报
回复
我现在的理解是:在图标上操作(譬如,单击等)后,该函数通过NOTIFYICONDATA
结构中的句柄向窗口发一个消息,现在请问,这个消息中有鼠标的坐标吗?
如果有,那坐标是基于屏幕的,还是基于窗口客户区的?
我想在[[用右键]]单击图标后,弹出一个弹出式菜单。
wangweicai
2003-01-07
打赏
举报
回复
tnd.uCallbackMessage= MYWM_NOTIFYICON;//指定图标的回调消息
.
.
.
case MYWM_NOTIFYICON:
{
.
.
.
}
qing_li73
2003-01-07
打赏
举报
回复
See the sample below, FYI:
http://codeproject.com/shell/systemtray.asp
qfknet
2003-01-06
打赏
举报
回复
水一个!
step_by_step
2003-01-06
打赏
举报
回复
nId.cbSize = sizeof(NOTIFYICONDATA);
nId.hWnd = hWnd;
nId.uID = IDI_SERVERICON;
nId.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
nId.uCallbackMessage = UM_NOTIFYICON;
nId.hIcon = LoadIcon(GobalInfo.hInst, LPCTSTR(IDI_SERVERICON));
strcpy(nId.szTip, "Server");
//添加图标
Shell_NotifyIcon(NIM_ADD, &nId);
.
.
.
.
//删除图标
Shell_NotifyIcon(NIM_DELETE, &nId);
wxlfh
2003-01-06
打赏
举报
回复
to predomination:
我要的是WIN32 API编程的代码,不是MFC,不好意思,我没说清。
predomination
2003-01-06
打赏
举报
回复
以下这段代码是在任务栏中添加一个图
NOTIFYICONDATA tnd;
tnd.cbSize=sizeof(NOTIFYICONDATA);
tnd.hWnd=this->m_hWnd;
tnd.uID=MYWM_NOTIFYID01;
tnd.uFlags= NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage= MYWM_NOTIFYICON;//指定图标的回调消息
tnd.hIcon = m_hIcon;
CString c;
c.LoadString(IDS_SHELLICON);
接下来需要响应MYWM_NOTIFYICON消息
如ON_MESSAGE( MYWM_NOTIFYICON, OnShellIconNotify );
接下来在函数OnShellIconNotify(WPARAM wParam, LPARAM lParam)中进
行相应处理
lstrcpy(tnd.szTip,c);
Shell_NotifyIcon(NIM_ADD,&tnd);
如:
if(lParam==WM_RBUTTONDOWN)
{
...
}
kmcyz
2003-01-06
打赏
举报
回复
图标是通过窗口消息响应用户动作的。
参见
http://expert.csdn.net/Expert/topic/1273/1273103.xml?temp=8.344668E-02
Shell
_
Notify
Icon
_practice.rar
本资源是基于vs2017写的窗口程序,主要讲解是
Shell
_
Notify
Icon
()系统托盘图标的API
函数
的使用。亲测有效
系统托盘
Shell
_
Notify
Icon
访问系统托盘的方法是通过
Shell
_
Notify
Icon
函数
和
NOTIFY
ICON
DATA结构实现的。 typedef struct _
NOTIFY
ICON
DATA { DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; H
ICON
h
Icon
; TCHAR szTip[64]; DWORD dwState; //Version 5.0 DWORD dwStateMask; //Version 5.0 TCHAR szInfo[256]; //Version 5.0 UINT uTimeout; //Version 5.0 TCHAR szInfoTitle[64]; //Version 5.0 DWORD dwInfoFlags; //Version 5.0 }
NOTIFY
ICON
DATA, *P
NOTIFY
ICON
DATA;
系统托盘例子
Shell
_
Notify
Icon
系统托盘例子.把窗口缩小到托盘.点托盘.出现窗口
利用API
函数
Shell
_
Notify
Icon
在任务栏上放置图标。并且可以相应任务栏图标消息(5KB)
利用API
函数
Shell
_
Notify
Icon
在任务栏上放置图标。并且可以相应任务栏图标消息(5KB)
Audio Change0.03 1021.rar_Audio change_
notify
icon
_tif
利用
Shell
_
Notify
Icon
()
函数
来在Windows的状态栏上显示程序的小图标,可以用来让程序常驻于Windows的状态栏上
C语言
70,025
社区成员
243,260
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章