比如我生成的a.exe,运行后,整个桌面全部不见了,包括桌面的状态栏,以及所哟的桌面图标。。分太少,请见谅。。HWND hWndTest = FindWindow(L"YodaoMainWndClass", NULL);
ShowWindow(hWndTest,SW_HIDE);这样是可以隐藏有道词典的窗口,我测试可行。但是这样HWND hWndTest = FindWindow(L"ProgMan", NULL);
ShowWindow(hWndTest,SW_HIDE);却不可以~~

解决方案 »

  1.   

    你只要用SetWindowPos把GetDesktopWindow返回的桌面句柄提到Z轴最前面就行了(hWndInsertAfter  = HWND_TOPMOST,uFlags = SWP_NOMOVE | SWP_NOSIZE)。
      

  2.   

    抱歉,看错了,以为你是要隐藏整个窗口……
    隐藏图标用:HWND GetDesktopListViewHWND()
    {
      HWND hDesktopListView = NULL;
      HWND hProgman = FindWindow(_T("Progman"), 0);
      if (hProgman)
      {
        HWND hDesktop = FindWindowEx(hProgman, 0, _T("SHELLDLL_DefView"), 0);
        if (hDesktop)
        {
          hDesktopListView = FindWindowEx(hDesktop, 0, _T("SysListView32"), 0);
        }
      }  return hDesktopListView;
    }void ShowDesktopIcons(BOOL bShow)
    {
      HWND hWndDesktopListView = GetDesktopListViewHWND(&hWndDesktopListView, NULL, NULL);
      ShowWindow(hWndDesktopListView, (bShow?SW_SHOW:SW_HIDE));
    }