将三维图形显示在一CFormView中的指定的Static控件中(将Static控件指定为显示图像)怎么做?万分感谢!!!!!!!!!!!!!!!!我按照http://tech.163.com/05/0304/10/1E0CDS5R00091589.html中的源码做了一遍,但还是画不出图像,怎么搞的。
按照文中:"在适当的地方调用m_openGL.RenderGLScene()就可以了"
我尝试在对话框中的OnPaint()中调用m_openGL.RenderGLScene()但是画不出图像。对话框打开时是出现一种忙的状态,但是却没有图像出现,然后一切都正常了,对话框还是原来的对话框,Static控件中一点图形也没有。
大侠们,救命啊!!!!!!!!!!!!!!!!!!!!!!!
按照文中:"在适当的地方调用m_openGL.RenderGLScene()就可以了"
我尝试在对话框中的OnPaint()中调用m_openGL.RenderGLScene()但是画不出图像。对话框打开时是出现一种忙的状态,但是却没有图像出现,然后一切都正常了,对话框还是原来的对话框,Static控件中一点图形也没有。
大侠们,救命啊!!!!!!!!!!!!!!!!!!!!!!!
解决方案 »
- 关于dos,win32程序的几个概念,区分的问题
- CreateFile()文件保存的疑问?
- 有没有人知道Invalidate函数是做什么用的?
- 奇闻vc菜单资源id变成数字
- 庆祝!我的SDK学习成果
- 帮我看看这段代码什么意思!!
- 因为可能出现同时播放两到三个wav文件,因此要根据情况调节音量,VC里面怎么操作???
- 高分懸賞,各位兄弟快救我!這是一段完整的輸出text到bmp的程序,其中有一些錯錯誤,幫幫忙改一下吧,我要瘋了
- 明明加了头文件,为什么编译时还是找不到该头文件啊?会是什么引起的啊?难道这个东西也需要注册啊???
- 关于BSTR类型的问题
- 怎么样去掉工具栏的标题栏啊?
- 高手来看吧。解释的通!高分送!
m_openGL.Create(rect, this);
用CView类来担当父类就成功了,画了一个立方体,效果很好,我把COpenGL中添加了对WM_ERASEBKGND消息的处理,不然图形一闪就没有了。不过我还是想在Static控件中来显示图像,楼上的 syy64(太平洋)大侠多给点意见,能有一个完成成功的源码就好了,, 大侠们快来啊。
class COpenGLC_Dlg : public CDialog
{
// Construction
public:
COpenGLC_Dlg(CWnd* pParent = NULL); // standard constructor .....// Implementation
protected:
COpenGL m_openGL; .....
};BOOL COpenGLC_Dlg::OnInitDialog()
{
CDialog::OnInitDialog(); ...... // 系统自动生成代码
// TODO: Add extra initialization here
CRect rect;
GetDlgItem(IDC_OPENGL)->GetWindowRect(rect);
ScreenToClient(rect);
m_openGL.Create(rect, this); return TRUE; // return TRUE unless you set the focus to a control
}BOOL COpenGLC_Dlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_PAINT)
{
if ( ::GetDlgCtrlID(pMsg->hwnd) == IDC_OPENGL)
{
m_openGL.RenderGLScene();
return TRUE;
}
} if (pMsg->message == WM_ERASEBKGND)
{
if ( ::GetDlgCtrlID(pMsg->hwnd) == IDC_OPENGL)
{
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}/////////////////////////////////////////////////////////////////////////////////////////////
其余的就是COpenGL的定义了,就是OpenGL环境的初始化, 对WM_CREATE, WM_PAINT, WM_ERASEBKGND, WM_SIZE作了处理,在视图环境下可以绘制图形,说明该类是没有问题的。关键是在哪儿调用m_openGL.RenderGLScene();
望大侠们多多参与讨论,进来的一律有分。