在MFC的单文档中用OpenGL画图,画图函数明明运行了,为啥就是显示不出来?画图函数如下:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MFC的单文档中用OpenGL画图,画图函数明明运行了,为啥就是显示不出来?画图函数如下:相关的知识,希望对你有一定的参考价值。

void CMyView::DrawScene(void)


glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

glBegin(GL_TRIANGLES); // 绘制三角形
glColor3f(1.0f,0.0f,0.0f);
glVertex3f( 0.0f, 10.0f, 0.0f); // 上顶点
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(10.0f,0.0f, 0.0f); // 左下
glColor3f(0.0f,0.0f,1.0f);
glVertex3f( 10.0f,20.0f, 0.0f); // 右下
glEnd();
glFinish();

CString str("Hello,World!");
m_pDC->TextOut(10,109,str);

hello world 可以显示出来

m_pDC= new CClientDC(this);
m_hDC=m_pDC->GetSafeHdc();//创建DC
ASSERT(m_pDC != NULL);

if (!SetupPixelFormat()) //设定绘图的位图格式,函数下面列出
return;

m_hRC= wglCreateContext(m_pDC->m_hDC);//创建 RC
wglMakeCurrent(m_pDC->m_hDC, m_hRC); //RC 与当前 DC 相关联

glLoadIdentity();
// 重置当前的模型观察矩阵
你主要在画图时没有重置坐标,简单说就是坐标初始化!
glTranslatef(-1.5f,0.0f,-6.0f);
// 左移 1.5 单位,并移入屏幕 6.0
下一步设置坐标后就可以开始画图了。
glBegin(GL_TRIANGLES);// 绘制三角形
参考技术A 不知道你在初始化的时候有没有以m_pDC创建绘图设备

以上是关于在MFC的单文档中用OpenGL画图,画图函数明明运行了,为啥就是显示不出来?画图函数如下:的主要内容,如果未能解决你的问题,请参考以下文章

MFC画图概述

计算机图形学课程二.MFC鼠标响应函数模拟画图软件

mfc怎么在桌面画图?

MFC的基本对话框怎么画图?

使用MFC编制基于对话框的Windows应用程序,实现画图功能

OpenGL在MFC中的使用总结——基本框架