我在对话框中添加一个Picture控件想在上面显示OPENGL所画的椭球。
我有两个问题:
1)OnSize()函数中的关于cx,cy判断,与Picture控件的区域大小(CRect rect)有何关系?
2)我通过下列语句想实现我的目的在Picture控件上面显示OPENGL所画的椭球。
全部都在对话框类中操作:
void huchaodatadialog::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if(cy > 0)????
{ //下面语句是我加的
CWnd *pWnd=GetDlgItem(IDC_PICTURE);
CDC *pDC=pWnd->GetDC();
::GetClientRect(pWnd->m_hWnd,rect);//这句话有没有错???
//下面语句是人家的
if((rect.right > cx) ¦¦ (rect.bottom > cy))
RedrawWindow();
rect.right = cx;
rect.bottom = cy;
//下面语句是OPENGL的函数语句
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.0,1.0,-1.0,1.0,3.0,7.0);
glViewport(0, 0, cx, cy);
}
}
编译通过但我执行程序结果:非法操作??
真心希望各位VC高手特别是擅长对话框的大虾能助小弟一臂之力。
胡 超:[email protected]
我有两个问题:
1)OnSize()函数中的关于cx,cy判断,与Picture控件的区域大小(CRect rect)有何关系?
2)我通过下列语句想实现我的目的在Picture控件上面显示OPENGL所画的椭球。
全部都在对话框类中操作:
void huchaodatadialog::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if(cy > 0)????
{ //下面语句是我加的
CWnd *pWnd=GetDlgItem(IDC_PICTURE);
CDC *pDC=pWnd->GetDC();
::GetClientRect(pWnd->m_hWnd,rect);//这句话有没有错???
//下面语句是人家的
if((rect.right > cx) ¦¦ (rect.bottom > cy))
RedrawWindow();
rect.right = cx;
rect.bottom = cy;
//下面语句是OPENGL的函数语句
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.0,1.0,-1.0,1.0,3.0,7.0);
glViewport(0, 0, cx, cy);
}
}
编译通过但我执行程序结果:非法操作??
真心希望各位VC高手特别是擅长对话框的大虾能助小弟一臂之力。
胡 超:[email protected]
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货