| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:怎么在窗口探出时就出现图形呢?
取消只看楼主 加入收藏
zhipeng0117
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2005-9-15
收藏
 问题点数:0 回复次数:1 
怎么在窗口探出时就出现图形呢?
在OnPaint函数里画图形,窗口出现之后没有显示出来,改变窗口大小之后才出现了,怎么修改可以让图形在Load之后就出现呢?
另外一开始在OnResize里没有加Invalidate函数,当窗口放大时图形随之改变,
图片附件: 游客没有浏览图片的权限,请 登录注册

缩小时没有变化
图片附件: 游客没有浏览图片的权限,请 登录注册

加了Invalidate之后可以了,有没有其他办法解决这个问题?
图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2007-3-23 16:07:55编辑过]

搜索更多相关主题的帖子: 图形 窗口 
2007-03-23 16:06
zhipeng0117
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2005-9-15
收藏
得分:0 

确实是在paint里画的,而且resize里面有修改视口变换,图形应该在resize之后重新投影,
protected override void OnPaint( System.Windows.Forms.PaintEventArgs e )
{
if(m_uint_DC == 0 || m_uint_RC == 0)
return;
WGL.wglMakeCurrent(m_uint_DC, m_uint_RC);

// Just clear the screen
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
GL.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
GL.glLoadIdentity();
GLU.gluLookAt(50, 50, 50, 0, 0, 0, 0, 0, 1);
//画球
int quadric = GLU.gluNewQuadric();
GLU.gluQuadricDrawStyle(quadric, GLU.GLU_SILHOUETTE);
GL.glPushMatrix();
GL.glColor3f(0.0f, 1.0f, 0.0f);
GL.glRotated(90, 1.0, 0.0, 0.0);
GLU.gluSphere(quadric, 20, 36, 18);
GL.glPopMatrix();

GL.glFlush();
GL.glDisable(GL.GL_DEPTH_TEST);

WGL.wglSwapBuffers(m_uint_DC);
WGL.wglMakeCurrent(0, 0);
}
protected virtual void ResizeGL(int w, int h)
{//在OnResize里调用
WGL.wglMakeCurrent(m_uint_DC,m_uint_RC);
GL.glViewport( 0, 0, w, h);
GL.glMatrixMode ( GL.GL_PROJECTION );
GL.glLoadIdentity();
GLU.gluPerspective( 30.0,((double)(w) / (double)(h)), 1.0,1000.0);
GL.glMatrixMode ( GL.GL_MODELVIEW );
GL.glLoadIdentity();

}


2007-03-23 17:19
快速回复:怎么在窗口探出时就出现图形呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022532 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved