其实这个很简单,只是创建设备的时候那个hwnd有点不一样!
   可能有人就会说,用GetDesktopWindows()获得桌面的句柄不就行了?那就错了!这样会没有效果的!正确的代码如下:

【原创】把D3D画面渲染到桌面!不用创建任何窗口    HWND hWnd  =  FindWindowEx(GetDesktopWindow() ,  0  ,  " Progman "  ,  " Program Manager " );
【原创】把D3D画面渲染到桌面!不用创建任何窗口    hWnd 
=  FindWindowEx(hWnd ,  0  ,  " SHELLDLL_DefView "  ,  0 );
【原创】把D3D画面渲染到桌面!不用创建任何窗口    hWnd 
=  FindWindowEx(hWnd ,  0  ,  " SysListView32 "  ,  " FolderView " );
【原创】把D3D画面渲染到桌面!不用创建任何窗口    
//  初始化 D3D 设备
【原创】把D3D画面渲染到桌面!不用创建任何窗口
    InitD3D(hWnd);
【原创】把D3D画面渲染到桌面!不用创建任何窗口
【原创】把D3D画面渲染到桌面!不用创建任何窗口

是不是很简单!哈哈。

显示的时候,如果想渲染在桌面的一角,则可以这样写:
【原创】把D3D画面渲染到桌面!不用创建任何窗口// 显示在左上角,128×128宽
【原创】把D3D画面渲染到桌面!不用创建任何窗口
        RECT rect;
【原创】把D3D画面渲染到桌面!不用创建任何窗口        rect.left 
= 0;
【原创】把D3D画面渲染到桌面!不用创建任何窗口        rect.right 
= 128;
【原创】把D3D画面渲染到桌面!不用创建任何窗口        rect.top 
= 0;
【原创】把D3D画面渲染到桌面!不用创建任何窗口        rect.bottom 
= 128;
【原创】把D3D画面渲染到桌面!不用创建任何窗口        
// 显示
【原创】把D3D画面渲染到桌面!不用创建任何窗口
        g_pd3dDevice->Present(0 , &rect , 0 , 0);
【原创】把D3D画面渲染到桌面!不用创建任何窗口
【原创】把D3D画面渲染到桌面!不用创建任何窗口

相关文章:

  • 2022-12-23
  • 2021-11-17
  • 2021-09-23
  • 2022-02-18
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-06
  • 2021-05-21
  • 2021-08-26
  • 2022-12-23
相关资源
相似解决方案