OpenGL与GDI绘图

hongkun18 2014-07-21 11:34:36
有一个疑问:
MFC程序一般都能通过获取到窗口的dc,然后再dc上使用gdi函数进行绘制图形。但如果这个窗口时使用opengl渲染的话,这种方法有问题,比如在窗口中绘制一条斜线,出来的效果是一个白色底的矩形 ,矩形的对角线才是我所想绘制的斜线。不知道如何解决。
...全文
1896 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudishaonv 2016-11-16
  • 打赏
  • 举报
回复
引用 6 楼 hongkun18 的回复:
如上图,底图中式使用opengl绘制的图片,而红色矩形是使用gdi在程序中获取窗口句柄以后,绘制的。就产生了白色的背景。
你好,怎么实现的?可以交流一下吗?
wudishaonv 2016-11-15
  • 打赏
  • 举报
回复
引用 12 楼 qq_35083591 的回复:
我已经成功解决opengl和gdi混合绘图的问题
怎么解决的,有例子吗?
qq_35083591 2016-05-22
  • 打赏
  • 举报
回复
我已经成功解决opengl和gdi混合绘图的问题
hongkun18 2015-05-27
  • 打赏
  • 举报
回复
估计是操作系统做了限制。
-年轮- 2015-04-09
  • 打赏
  • 举报
回复
请问您这个问题解决了吗?
bingzhu 2015-01-03
  • 打赏
  • 举报
回复
GDI的DC设置成透明的背景不行吗?
wshcdr 2014-08-22
  • 打赏
  • 举报
回复
关注这个问题
hongkun18 2014-08-01
  • 打赏
  • 举报
回复

如上图,底图中式使用opengl绘制的图片,而红色矩形是使用gdi在程序中获取窗口句柄以后,绘制的。就产生了白色的背景。
看不见的裂痕 2014-07-24
  • 打赏
  • 举报
回复
最好上个图看看。。 今天刚用WM_ERASEBKGND解决了,基于OpenGL的一个图像引擎的闪烁问题。
边走边瞧 2014-07-24
  • 打赏
  • 举报
回复
是WM_ERASEBKGND的问题吗?
hongkun18 2014-07-22
  • 打赏
  • 举报
回复
我试过2楼提到的示例,在windows xp中是ok的,但在windows7就不行了。同样有白底。 另外,3楼,我做了一个COM组件,使用opengl做渲染的。客户端程序可以获取到COM组件的窗口句柄,并想在上面绘制。因此才引发这个问题。
赵4老师 2014-07-21
  • 打赏
  • 举报
回复
参考: MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEDOC.H MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\STDAFX.CPP MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\RESOURCE.H MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\MAKEFILE MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\MAINFRM.H MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\MAINFRM.CPP MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEVIEW.H MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEDOC.CPP MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\STDAFX.H MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEVIEW.CPP MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.MAK MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.H MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.DSW MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.DSP MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.CPP MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.CLW MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.RC MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\RES\CUBE.RC2 MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\RES\TOOLBAR.BMP MSDN98\SAMPLES\VC98\MFC\ADVANCED\CUBE\RES\CUBE.ICO
fishion 2014-07-21
  • 打赏
  • 举报
回复
如果是用opengl了,那就继续用opengle来绘图了,不要用GDI了,不然就用一个调用了UpdateLayeredWindow方法的窗口来覆盖,同时在这窗口里绘制线

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧