BOOL CProShowApp::InitInstance()
{
//鼠标移动到任务栏的托盘图标上提示乱码!!!!
        //关闭程序,托盘图标消失!!!!!
        //鼠标点击托盘,是什么消息处理下,可以弹出菜单呢?
        NOTIFYICONDATA m_niData;
m_niData.cbSize=sizeof(m_niData);
m_niData.hWnd=this->m_pMainWnd->m_hWnd;
m_niData.hIcon=LoadIcon(IDR_MAINFRAME);
m_niData.uID=2907;
m_niData.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP; Shell_NotifyIcon(NIM_ADD,&m_niData); 
return TRUE;
}

解决方案 »

  1.   

    //鼠标移动到任务栏的托盘图标上提示乱码!!!!
    =====>>因为你没加tip//关闭程序,托盘图标消失!!!!!
    ====>你到底想要什么样子?//鼠标点击托盘,是什么消息处理下,可以弹出菜单呢?
    =====》可以设置一个通知消息, NOTIFYICONDATA结构有个成员uCallbackMessage给它赋值一个消息ID
    消息响应函数里判断lParam是否是 switch (lParam)
    {
    case WM_LBUTTONDBLCLK:
    {
                        //鼠标双击托盘图标
                     }
      

  2.   

    http://blog.csdn.net/lyshiba/article/details/7482322
    看看这个把!
      

  3.   


    CHAR tipchar[10] = "fuck here";
    m_niData.szTip = tipchar; error C2440: “=”: 无法从“CHAR [10]”转换为“CHAR [128]”
      

  4.   

    m_niData.szTip = tipchar;
    ===>
    strcpy(m_niData.szTip,tipchar);
      

  5.   

    针对第三个问题回答下
    ...
    m_nData.uCallbackMessage = WM_TaskBarNotifyMenu; //这里用的是WM_TaskBarNotifyMenu这个自定义消息
    ...
    //然后写接受消息的回调函数即可,详情可参考下面的代码
    afx_msg LRESULT CWinDlg::OnTaskbarnotifymenu(WPARAM wParam, LPARAM lParam)
    //wParam接收的是图标的ID,而lParam接收的是鼠标的行为 

    if(wParam!=IDR_MAINFRAME) 
    return 1; 
    switch(lParam) 
    {    
    case WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭” 
    {  LPPOINT lpoint=new tagPOINT; 
    ::GetCursorPos(lpoint);//得到鼠标位置 
    CMenu menu; 
    menu.CreatePopupMenu();//声明一个弹出式菜单 
    //增加菜单项“关闭”,点击则发送消息WM_DESTROY给主窗口(已 
    //隐藏),将程序结束。 
    menu.AppendMenu(MF_STRING,WM_DESTROY,_T("退出")); 
    //确定弹出式菜单的位置 
    menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this); 
    //资源回收 
    HMENU hmenu=menu.Detach(); 
    menu.DestroyMenu(); 
    delete lpoint; 

    break; 
    case WM_LBUTTONDBLCLK://双击左键的处理 

    this->ShowWindow(SW_SHOW);//简单的显示主窗口完事儿 

    break; 

    return 0; 
    }
      

  6.   

    那是因为QQ最小化时,把主窗口隐藏掉了,在响应关系消息的地方调用ShowWindow(SW_HIDE);即可
      

  7.   

    1、你加了tip标志,但是没有给数据,所以乱码m_TrayData.uFlags = NIF_ICON|NIF_MESSAGE | NIF_TIP;
    lstrcpyn(m_TrayData.szTip, _T("TIP文字"), sizeof(m_TrayData.szTip));2、你关闭程序,进程都退出了,肯定关闭了,除非你隐藏,你看到别人的其实都是隐藏主窗口。3、托盘结构构造时有个自定义消息,响应那个消息的鼠标点击,弹出你的快捷菜单,菜单和其他弹出式菜单一样,自己做。
      

  8.   


    ON_MESSAGE(WM_MESSAGE_STOCK, &CProShowApp::OnMessageStock)
    1>.\ProShow.cpp(28) : error C2440: “static_cast”: 无法从“LRESULT (__thiscall CProShowApp::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
      

  9.   

    咋回事?????????
    #define WM_MESSAGE_STOCK (WM_USER + 5)
    afx_msg LRESULT OnMessageStock(WPARAM wParam,LPARAM lParam);
    ON_MESSAGE(WM_MESSAGE_STOCK, &CProShowApp::OnMessageStock)1>.\ProShow.cpp(28) : error C2440: “static_cast”: 无法从“LRESULT (__thiscall CProShowApp::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
      

  10.   

    消息映射放到主窗口类里不要放到CProShowApp这个里
      

  11.   

    http://download.csdn.net/detail/tlm38025/3336989可以下个源码看看啊