怎么能让程序运行时不在任务栏显示图标?程序窗口在桌面上显示,且是当前活动窗口,但任务栏中不显示图标。

解决方案 »

  1.   

    让你的主窗口带上WS_EX_TOOLWINDOW风格
      

  2.   

    以SDI和MDI应用为例,你可以在CMainFrame中重载PreCreateWindow(),在其中加一句:
    cs.dwExStyle |= WS_EX_TOOLWINDOW;
      

  3.   

    对基于对话框的应用,稍微复杂一些:
    先在资源编辑器中,把对话框的属性(Extended Style中)设成“Tool Window”,然后在主对话框的OnInitDialog()中加入下面代码:
        DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE);
        Style = WS_EX_TOOLWINDOW ;
        AfxGetMainWnd()->ShowWindow(SW_HIDE);
        ::SetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE, Style); 
        AfxGetMainWnd()->ShowWindow(SW_SHOW);
      

  4.   

    今天我也在想这个问题。后来在网页上和msdn中找到一种方法。
    先得到任务栏的句柄:
    hTabWnd = FindWindow("Shell_TrayWnd", 0);
    hTabWnd = FindWindowEx(hTabWnd, 0, "ReBarWindow32", NULL);
    hTabWnd = FindWindowEx(hTabWnd, 0, "MSTaskSwWClass", NULL);
    hTabWnd = FindWindowEx(hTabWnd, 0, "SysTabControl32", NULL);
    然后用TabCtrl_DeleteItem删除你想要删除的那个按钮(就是程序在任务栏中的那个)。
    不过我调用TabCtrl_GetItem时老是出现非法内存操作,哪位哥们给个方法?
      

  5.   

    在对话框中实现隐藏任务栏也很简单
    用文本方式打开资源文件,在对话框资源所在的地方
    把EXSTYLE WS_EX_APPWINDOW改成WS_EX_TOOLWINDOW
    保存就可以了
      

  6.   

    在对话框中实现隐藏任务栏也很简单
    用文本方式打开资源文件,在对话框资源所在的地方
    把EXSTYLE WS_EX_APPWINDOW改成WS_EX_TOOLWINDOW
    保存就可以了
      

  7.   

    对基于对话框的应用,稍微复杂一些:
    先在资源编辑器中,把对话框的属性(Extended Style中)设成“Tool Window”,然后在主对话框的OnInitDialog()中加入下面代码:
        DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE);
        Style = WS_EX_TOOLWINDOW ;
        AfxGetMainWnd()->ShowWindow(SW_HIDE);
        ::SetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE, Style); 
        AfxGetMainWnd()->ShowWindow(SW_SHOW);