我的应用程序是基于对话框的,想放进系统托盘,现碰到2个问题:
1:对话框最小化后任务栏还有程序图标,如何去掉?我只想让它显示在托盘中。
2:点击托盘图标后,系统界面闪了一下,但没有显示出来?

解决方案 »

  1.   

    1
    把对话框的扩展属性修改成为WS_EX_TOOLWINDOW。
        [程序实现]
        把对话框的属性设置成为toolwindow,然后在需要的地方执行本代码。
        DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd,GWL_EXSTYLE);
        Style = WS_EX_TOOLWINDOW ;
        ::SetWindowLong(AfxGetMainWnd()->m_hWnd,GWL_EXSTYLE,Style);
      

  2.   

    http://www.vckbase.com/document/finddoc.asp?keyword=%CD%D0%C5%CC在这里搜索“托盘”,又很多相关内容
      

  3.   

    http://www.vckbase.com/document/finddoc.asp?keyword=%CD%D0%C5%CC在这里搜索“托盘”,又很多相关内容
      

  4.   

    2:就是我点了一下图标,主窗口只在屏幕上闪了一下,但并没有显示出来。
       我在响应左键时用了showwindow(sw_shownormal);但没有用。
      

  5.   

    不能将对话框的属性设为toolwindow,这样最小化按钮就没有了。
      

  6.   

    看你的代码是不是用了showwindow(sw_shownormal);之后又被给隐藏起来了,要不它怎么闪呢
      

  7.   

    to laiyiling(最熟悉的陌生人)
    1:我想保留最小化按钮,所以你的方法不行。
    2:在showwindow(sw_shownormal_之后,我没有再隐藏过窗口。
    继续求教
      

  8.   

    1:可在最小化时将窗口隐藏ShowWindow(SW_HIDE);
    2:
    ShowWindow(SW_SHOWNORMAL);
    SetForegroundWindow();
    BringWindowToTop();
      

  9.   

    最小花时
    ShowWindow(SW_MINIMIZE);   // 有这个最笑话好看点
    ShowWindow(SW_HIDE);点击托盘图标
    ShowWindow(SW_SHOW);
    ShoWindow(SW_SHOWNORMAL);
      

  10.   

    第二个问题用了 TonyWJ(◎◎!) 的方法已经解决了。
    再重复一下第一个问题:
    怎样才能让程序图标只显示在托盘中而不显示在任务栏中?我的程序是基于对话框的。
    目前已经试过改为toolwindow,但改了之后程序的最小化按钮消失了!
      

  11.   

    第一个问题也已经解决,是showwindow(sw_shownormal)放错了地方。
    第二个问题是这样解决的:
    ShowWindow(SW_SHOWNORMAL);  
    SetForegroundWindow();  
    BringWindowToTop();