我图形已经画出来,然后我在菜单栏增加一个控件,我希望点击一个这个按键,图像旋转一下!
rtri是旋转的角度
控件的响应函数是这样的void COpenGLDemoView::OnRotate()
{
// TODO: 在此添加命令处理程序代码
rtri+=0.2f;
}
画图的函数是void COpenGLDemoView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
glLoadIdentity(); // Reset The Current Modelview Matrix
glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0
glRotatef(rtri,0.0f,1.0f,0.0f); // 绕Y轴旋转三角形 glBegin(GL_TRIANGLES); // Drawing Using Triangles
glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red
glVertex3f( 0.0f, 1.0f, 0.0f); // Top
glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
glEnd(); // Finished Drawing The Triangle
glTranslatef(3.0f,0.0f,0.0f); // Move Right 3 Units
glColor3f(0.5f,0.5f,1.0f); // Set The Color To Blue One Time Only
glBegin(GL_QUADS); // Draw A Quad
glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left
glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glEnd(); // Done Drawing The Quad
SwapBuffers(dc.m_hDC);
}
为什么不旋转了,一点反应都没有,这是为什么呢?求大神啊
rtri是旋转的角度
控件的响应函数是这样的void COpenGLDemoView::OnRotate()
{
// TODO: 在此添加命令处理程序代码
rtri+=0.2f;
}
画图的函数是void COpenGLDemoView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
glLoadIdentity(); // Reset The Current Modelview Matrix
glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0
glRotatef(rtri,0.0f,1.0f,0.0f); // 绕Y轴旋转三角形 glBegin(GL_TRIANGLES); // Drawing Using Triangles
glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red
glVertex3f( 0.0f, 1.0f, 0.0f); // Top
glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
glEnd(); // Finished Drawing The Triangle
glTranslatef(3.0f,0.0f,0.0f); // Move Right 3 Units
glColor3f(0.5f,0.5f,1.0f); // Set The Color To Blue One Time Only
glBegin(GL_QUADS); // Draw A Quad
glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left
glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glEnd(); // Done Drawing The Quad
SwapBuffers(dc.m_hDC);
}
为什么不旋转了,一点反应都没有,这是为什么呢?求大神啊
解决方案 »
- CString转换LPCOLESTR然后再转换LPCTSTR
- 如何判断一个路径是否可写?
- 大虾教我!!!
- 高手请进。。。关于cstatic的透明问题。以及界面背景颜色填充问题????
- 登陆源码
- win7 调用Dllregisterserver 注册mshflxgd.ocx失败,返回ox8002801c
- 我用CHtmlView打开的网页,如何得到html原码!?
- 跟我一起学MFC
- [急!]如何获取硬盘和盘符对应关系,就像Windows磁盘管理那样?
- 什么样的数据类型可以存放一个结构体?
- 使用CDockablepane时,请教如何去除paneDivider,更改其颜色?
- import+raw_interface_only只生成原始接口函数: 适用于什么场景?
{
// TODO: 在此添加命令处理程序代码
rtri+=0.2f;//Invalidate(TRUE); ?? 值改变需要通知视图更新显示
}