不用WS_HIDE怎么才能显示窗口,但是隐藏任务栏,不用WS_HIDE,图标最小化到右下角

解决方案 »

  1.   

    去掉窗口的WS_EX_APPWINDOW属性。要用托盘来做。
    m_SysTrayNtd.cbSize=sizeof(NOTIFYICONDATA);
    m_SysTrayNtd.hWnd= GetSafeHwnd() ;
    m_SysTrayNtd.uID=IDR_MAINFRAME;
    m_SysTrayNtd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
    m_SysTrayNtd.uCallbackMessage= WM_SYS_TRAY_MESSAGE ;
    m_SysTrayNtd.hIcon= ::LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
    strcpy_s(m_SysTrayNtd.szTip,sizeof(m_SysTrayNtd.szTip),_T("我的托盘")); 
    Shell_NotifyIcon(NIM_ADD,&m_SysTrayNtd);//向任务栏添加图标
      

  2.   

    虽然可以让他最下化到右下角,可是那个任务栏还在。在哪去掉WS_EX_APPWINDOW,
      

  3.   

    不是对话框,cs.dwExStyle=cs.dwExStyle|~WS_EX_APPWINDOW没有效果啊,
      

  4.   

    void
    showintaskbar( HWND hwnd, int bshow )
    {
    HRESULT hr;
    ITaskbarList* pTaskbarList; hr = CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_ITaskbarList, ( void** )&pTaskbarList ); pTaskbarList->HrInit( ); if( bshow )
    {
    pTaskbarList->AddTab( hwnd );
    }
    else
    {
    pTaskbarList->DeleteTab( hwnd );
    } pTaskbarList->Release();
    }
      

  5.   

    首先你要实现托盘
    然后ShowWindow(SW_HIDE);
    这样就可以了