查看: 1526|回复: 13

大家好,有个问题想求教,急急急!

[复制链接]

该用户从未签到

发表于 2011-1-16 19:53:41 | 显示全部楼层 |阅读模式
大家好,有个问题很棘手,就是 我在MFC的父dialog里面画一个子dialog,并且设置成半,透明的,但是如果父dialog交给osg渲染的话,必须注释掉设置半透明这两句话,才能不透明的显示出来,否则就看不到这个子dialog了,请问谁能帮忙解释下,什么问题呢?具体的可以看图,如果我描述的不清楚,请大家问我就是了,谢谢!
1.jpg
2.jpg
3.jpg

该用户从未签到

 楼主| 发表于 2011-1-16 19:56:07 | 显示全部楼层
忘了解释下,整个图是父dialog,左上角为子dialog
图1 的意思是父dialog 交给osg渲染,代码不能设置成半透明,
图2 的意思是父dialog 交给Windows渲染,代码可以设置成半透明,
图3 的意思是父dialog 交给osg渲染,代码设置成半透明,就显示不出来了。

该用户从未签到

发表于 2011-1-17 08:33:37 | 显示全部楼层
我不清楚mfc的父子窗口处理机制,不过我不认为GDI的绘制能够与OpenGL渲染上下文很好地协同起来

该用户从未签到

 楼主| 发表于 2011-1-17 09:45:09 | 显示全部楼层
3# array
恩,谢谢关注,

我在想能不能通过其他的办法解决掉这个问题,我只是想用gdi画一个半透明的窗口显示设备信息
是不是他们选择渲染的时机不对呢?

该用户从未签到

发表于 2011-1-17 11:12:34 | 显示全部楼层
我认为这和渲染已经没什么关系了,而是两种类型的设备上下文(hdc和hglrc)有没有可能完美地协调工作——事实上我不认为这有什么希望,不然为什么还会有如此多的3DGUI出现

该用户从未签到

 楼主| 发表于 2011-1-17 13:22:35 | 显示全部楼层
5# array
你好有没有 这个情况,我 在 内存里面 将 左上画个 半透明的放到osg 要渲染的 图像中,osg图像要放到现存中渲染,每次渲染有个事件, 这样 告诉我,我就再继续 在内存中 重复这个工作可以么 ?

该用户从未签到

发表于 2011-1-17 15:54:00 | 显示全部楼层
我看楼主还是别折腾了,就看你这个效果,完全可以直接使用HUD对象来实现那个“子对话框”。

该用户从未签到

 楼主| 发表于 2011-1-17 16:11:05 | 显示全部楼层
7# yin_savage
这个我这个应用是不一样的,我这个窗口需要实时显示 计算机获得的监控设备信息,以及一些流数据,并且需要支持数据的复制,等操作。

该用户从未签到

发表于 2011-1-17 16:31:48 | 显示全部楼层
5# array
你好有没有 这个情况,我 在 内存里面 将 左上画个 半透明的放到osg 要渲染的 图像中,osg图像要放到现存中渲染,每次渲染有个事件, 这样 告诉我,我就再继续 在内存中 重复这个工作可以么 ?
柏瑞克李 发表于 2011-1-17 13:22


我从未听说过这种可能性,Windows的保护机制不会允许您对显存进行任何直接操作

该用户从未签到

 楼主| 发表于 2011-1-17 17:34:56 | 显示全部楼层
9# array
我也是个初学者,我描述的意思可能不清楚,
我个人觉得数据能不能从内存放入显存,描画完一帧之后返回个事件,

这样重复做呢?

该用户从未签到

发表于 2011-1-17 18:09:05 | 显示全部楼层
预渲染到纹理,然后处理那张纹理吧;
估计你说的意思,也就是操作CDC的Bitmap。

该用户从未签到

 楼主| 发表于 2011-1-17 19:11:16 | 显示全部楼层
11# qele
是的,我说的是那意思,可是我还不懂windows编程,

我想先画到内存的位图上,然后让显卡去渲染,

这样可以么?

该用户从未签到

发表于 2011-1-18 08:14:21 | 显示全部楼层
我不认为GDI编程有这种可能性

该用户从未签到

发表于 2011-1-19 19:18:21 | 显示全部楼层
我老早也试过mfc的半透明对话框,根本无法跟osg结合~~
已放弃,至今无解决方法!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表