本帖最后由 weiwuyuan 于 2012-03-10 17:40:28 编辑

解决方案 »

  1.   


      HWND hParent = ::FindWindow(_T("Progman"), NULL);
      if(hParent == NULL)
        hParent = ::GetDesktopWindow();
      if(hParent)
      {
        ::SetParent(GetSafeHwnd(), hParent);
      }
      

  2.   


    怎么设置??
    ::SetWindowPos(g_hWnd, HWND_BOTTOM, 0, 0, WND_WIDTH, WND_HEIGHT, SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);
    这样?没有用的。。
      

  3.   

    响应WM_ACTIVE,将枚举得到窗口置于其上,
      

  4.   

    #define _WIN32_WINNT 0x0500
    #include <Windows.h>
    int main()
    {    SetParent(FindWindowW(L"Notepad",0),GetShellWindow());
        return 0;
    }
    把记事本放最底下
      

  5.   

    最底层可以把桌面设为它的父窗口,不响应鼠标事件可以
    LONG   dwNewLong   =   GetWindowLong(m_hWnd,   GWL_EXSTYLE);   
    dwNewLong   |=   WS_EX_TRANSPARENT   |WS_EX_LAYERED;   
    SetWindowLong(m_hWnd,   GWL_EXSTYLE,   dwNewLong);
    把窗口设置成鼠票透明
      

  6.   

    hook桌面窗口。把windows桌面窗口个性化成你的窗口。关于hook技术可以查看《windows核心编程》
    hook技术比较麻烦地方在于一是自身相对复杂,二是容易触发防病毒软件,而且windows不同版本下代码可能不同。
      

  7.   

    你想做个类似WIN7上日历等得控件?