Shell_NotifyIcon创建图标后窗口收不到来自托盘图标的消息 80

g_Icon.cbSize=sizeof(NOTIFYICONDATA);g_Icon.hWnd=hWnd;g_Icon.uCallbackMessage=WM_USER... g_Icon.cbSize = sizeof(NOTIFYICONDATA);
g_Icon.hWnd = hWnd;
g_Icon.uCallbackMessage = WM_USER + 0x00ffff;
g_Icon.uID = 1111;
g_Icon.uFlags=NIF_MESSAGE|NIF_ICON;
g_Icon.hIcon = ::LoadIcon(hInstance, MAKEINTRESOURCE(IDI_DXLAUNCHER));
Shell_NotifyIcon(NIM_ADD,&g_Icon);

代码如上 但创建图标在托盘后 鼠标点击 窗口收不到消息
spy++下看的确是没有消息 请问为什么
展开
 我来答
望穿秋水待伊人
2010-06-17 · TA获得超过644个赞
知道小有建树答主
回答量:708
采纳率:100%
帮助的人:793万
展开全部
要自定义消息映射,m_a.hIcon=::LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON));如果是MFC的话用AfxGetInstanceHandle(),不要用hInstance

下面是我自己程序里的一部分,你可以参考下:
#define WM_DO 1111

应用程序类头文件里加入:
afx_msg void OnDo(WPARAM wParam,LPARAM lParam);

消息映射里:
ON_MESSAGE(WM_DO,OnDo)

初始化:
m_a.cbSize=sizeof(NOTIFYICONDATA);
m_a.hIcon=::LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON));
m_a.hWnd=m_hWnd;
m_a.uCallbackMessage=WM_DO;
m_a.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
char *m_str="托盘图标";
strncpy(m_a.szTip,m_str,strlen(m_str)+1);

void CMyDlg::OnDo(WPARAM wParam, LPARAM lParam)
{
if(lParam==WM_LBUTTONDOWN)
ShowWindow(SW_RESTORE);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式