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++下看的确是没有消息 请问为什么 展开
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++下看的确是没有消息 请问为什么 展开
展开全部
要自定义消息映射,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);
}
下面是我自己程序里的一部分,你可以参考下:
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询