李锦俊(mybios)的blog

游戏开发 C++ Cocos2d-x OpenGL DirectX 数学 计算机图形学 SQL Server

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

公告

QQ:30743734
EMain:mybios@qq.com

常用链接

留言簿(16)

我参与的团队

最新随笔

搜索

  •  

积分与排名

  • 积分 - 366553
  • 排名 - 67

最新评论

阅读排行榜

评论排行榜

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

    HWND hWnd  =  FindWindowEx(GetDesktopWindow() ,  0  ,  " Progman "  ,  " Program Manager " );
    hWnd 
=  FindWindowEx(hWnd ,  0  ,  " SHELLDLL_DefView "  ,  0 );
    hWnd 
=  FindWindowEx(hWnd ,  0  ,  " SysListView32 "  ,  " FolderView " );
    
//  初始化 D3D 设备
    InitD3D(hWnd);


是不是很简单!哈哈。

显示的时候,如果想渲染在桌面的一角,则可以这样写:
// 显示在左上角,128×128宽
        RECT rect;
        rect.left 
= 0;
        rect.right 
= 128;
        rect.top 
= 0;
        rect.bottom 
= 128;
        
// 显示
        g_pd3dDevice->Present(0 , &rect , 0 , 0);
posted on 2006-11-17 14:54 李锦俊(mybios) 阅读(4784) 评论(12)  编辑 收藏 引用 所属分类: Direct3D

Feedback

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2006-11-17 18:06 空明流转
不只是D3D,都可以。例如用DS播放视频。  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2006-11-17 20:13 李锦俊
空明大大也上来了啊!
你的意思是说DirectShow直接在Desktop上播放视频吧?
我记得用VMR9是可以实现的。可以传一个HWND进去。是这个意思不?  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2006-11-27 14:19 LifeAndC
我可能第一出手想到的就是:GetDesktopWindow(),你是做DirectX 3D图形的??想学点这方面有什么资料没有??推荐一下,谢!

f-pt@163.com  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2006-11-27 21:33 李锦俊
@LifeAndC
我学习一般是看书,我看了2个多星期的书,现在开始学着写一些简单的游戏  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2007-04-02 14:15 yanjun
不错,桌面分三层都被你看出来了!  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2007-05-31 11:41 dave
Winamp有个效果插件, 应该就是这样的做法, 可以在桌面窗口上动态显示vis.  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2007-12-01 00:01 乐乐
我按着你说的方法作了,可是什么也没有,可能是什么原因呢?我做了个场景,直接把上面的代码靠过来 用那个句柄初始化了D3D,我的操作系统是vista和这个有关系吗?  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2008-03-02 13:43 herbert
请问桌面分哪三层啊?
怎么我把这段代码加进去以后, hwnd 得到一个空值的呢?  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2008-04-22 01:27 cemaster
如何把背景变成透明的呢?  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2008-06-30 15:02 ice
桌面背景设置成透明的 播放视频 又不影响桌面图标
这个和楼主说的不是一个技术
播放视频时使用Overlay 把桌面壁纸去掉 背景色用Color Key 就可以把video显示在桌面上了  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2008-08-04 16:03 路过
桌面背景如何设置成透明?  回复  更多评论
  

# re: 【原创】把D3D画面渲染到桌面!不用创建任何窗口 2008-08-10 07:55 liucang
没有D3D  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理