我的C++窗口小图标在系统的通知栏那边,然后单击会弹出窗口,再单击则隐藏窗口。但是当XP系统点击了显示桌面按钮后,C++窗口被隐藏,然后再去点击通知栏小图标就不会弹出窗口了。要等再次点击显示桌面按钮后,才能正常显示窗口。很疑惑这是为什么????当点击显示桌面按钮时到底给系统发送了什么消息???为什么会对C++窗口产生影响??急需帮助。!!!!!!!!!!在线等!!!

解决方案 »

  1.   

    可以用 Spy++ 抓一下给你发了什么消息
      

  2.   

    对,你怎么实现“单击会弹出窗口,再单击则隐藏窗口” 。其实这里可以做下判断,单击托盘图标的时候检查窗口状态,如果已经被隐藏了就显示,如果已经显示了就隐藏。
    单击“显示桌面”时windows貌似是给所有窗口发了最小化消息。
      

  3.   

    case WM_LBUTTONDOWN:    // 鼠标左键在图标按下
    {
    if (::IsWindowVisible(m_hWnd))
    {
    ShowWindow(false);
    }
    else
    {
    ShowWindow(true);
    }
    break;
    }确实是这样判断的,但是还是会跟显示桌面产生冲突。
      

  4.   

    XP系统点击了显示桌面按钮 ,是指 windows键+D 吗?
    按完后会发送最小化消息给对话框,
    和ShowWindow(SW_MINIMIZE);一样