请问程序启动时如何在任务栏显示一个图标?

myhid 2009-12-10 11:00:36
在WM系统中,我做了一个程序,想在启动后在任务栏有一个小图标,然后点窗体上的"X"的时候隐藏到任务栏,然后再可以从任务栏点出来,就像QQ一样,WM中可以这样现实吗????
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ncbhr 2009-12-13
  • 打赏
  • 举报
回复
正在找这方面的内容,谢过!!
infsafe 2009-12-10
  • 打赏
  • 举报
回复
二楼正解.
myhid 2009-12-10
  • 打赏
  • 举报
回复
可否有C#的例子啊.不懂C++啊
thinkinwm 2009-12-10
  • 打赏
  • 举报
回复
This function asynchronously adds a notification to the notification tray.

Syntax

LRESULT SHNotificationAdd(
SHNOTIFICATIONDATA* pndAdd
);

參考Windows Mobile 6 SDK\Samples\PocketPC\CPP\win32\notifications 例子程序
peterb 2009-12-10
  • 打赏
  • 举报
回复
//最小化程序到系统图盘区
void HideWindow(HWND hwnd)
{
        NOTIFYICONDATA nid;
        nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
        nid.hWnd=hwnd;
        nid.uID=IDI_MTSU;
        nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
        nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
        nid.hIcon=LoadIcon(g_hInst,MAKEINTRESOURCE(IDI_MTSU));
        WCHAR str[] = L"程序名称";
        memcpy(nid.szTip,str,wcslen(str)); //信息提示条
        Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
        ShowWindow(hwnd,SW_HIDE); //隐藏主窗口
}

//删除系统托盘区图标
void DestroyIcon(HWND hwnd)
{
        NOTIFYICONDATA nid;
        nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
        nid.hWnd=hwnd;
        nid.uID=IDI_MTSU;
        nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
        nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
        nid.hIcon=LoadIcon(g_hInst,MAKEINTRESOURCE(IDI_MTSU));
        WCHAR str[] = L"程序名称";
        memcpy(nid.szTip,str,wcslen(str)); //信息提示条
        Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区删除图标
}

在窗口过程函数里:
case WM_SHOWTASK://点击系统托盘
{
if (wParam == IDI_MTSU)
{
ShowWindow(hWnd,SW_SHOW);
SetForegroundWindow((HWND)((ULONG) hWnd | 0x00000001));
DestroyIcon(hWnd);
}
}
break;

7,657

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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