mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0027543: Samples - flickering when view is resized in MFC samples
Define proper window class for OpenGL window within overridden method CView::PreCreateWindow().
This commit is contained in:
parent
458e3c0deb
commit
d01ed5fdd1
@ -276,8 +276,9 @@ void CGeometryView2D::OnMouseMove(UINT nFlags, CPoint point)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGeometryView2D::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
|
void CGeometryView2D::OnSize(UINT nType, int cx, int cy)
|
||||||
{
|
{
|
||||||
|
OCC_2dView::OnSize (nType, cx, cy);
|
||||||
if (!myV2dView.IsNull())
|
if (!myV2dView.IsNull())
|
||||||
{
|
{
|
||||||
myV2dView->MustBeResized(); // added sro
|
myV2dView->MustBeResized(); // added sro
|
||||||
|
@ -111,8 +111,6 @@ CViewer3dView::CViewer3dView()
|
|||||||
myXmax (0),
|
myXmax (0),
|
||||||
myYmax (0),
|
myYmax (0),
|
||||||
myCurZoom (0.0),
|
myCurZoom (0.0),
|
||||||
myWidth (0),
|
|
||||||
myHeight (0),
|
|
||||||
NbActiveLights (2), // There are 2 default active lights
|
NbActiveLights (2), // There are 2 default active lights
|
||||||
myHlrModeIsOn (Standard_False),
|
myHlrModeIsOn (Standard_False),
|
||||||
m_Pen (NULL),
|
m_Pen (NULL),
|
||||||
@ -131,10 +129,10 @@ CViewer3dView::~CViewer3dView()
|
|||||||
|
|
||||||
BOOL CViewer3dView::PreCreateWindow(CREATESTRUCT& cs)
|
BOOL CViewer3dView::PreCreateWindow(CREATESTRUCT& cs)
|
||||||
{
|
{
|
||||||
// TODO: Modify the Window class or styles here by modifying
|
// TODO: Modify the Window class or styles here by modifying
|
||||||
// the CREATESTRUCT cs
|
// the CREATESTRUCT cs
|
||||||
|
cs.lpszClass = ::AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC, ::LoadCursor(NULL, IDC_ARROW), NULL, NULL);
|
||||||
return CView::PreCreateWindow(cs);
|
return CView::PreCreateWindow(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
@ -170,15 +168,7 @@ void CViewer3dView::OnDraw(CDC* /*pDC*/)
|
|||||||
{
|
{
|
||||||
CViewer3dDoc* pDoc = GetDocument();
|
CViewer3dDoc* pDoc = GetDocument();
|
||||||
ASSERT_VALID(pDoc);
|
ASSERT_VALID(pDoc);
|
||||||
CRect aRect;
|
|
||||||
GetWindowRect(aRect);
|
|
||||||
if(myWidth != aRect.Width() || myHeight != aRect.Height()) {
|
|
||||||
myWidth = aRect.Width();
|
|
||||||
myHeight = aRect.Height();
|
|
||||||
::PostMessage ( GetSafeHwnd () , WM_SIZE , SW_SHOW , myWidth + myHeight*65536 );
|
|
||||||
}
|
|
||||||
myView->Redraw();
|
myView->Redraw();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
@ -228,8 +218,9 @@ gp_Pnt ConvertClickToPoint(Standard_Real x, Standard_Real y, Handle(V3d_View) aV
|
|||||||
return ResultPoint;
|
return ResultPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CViewer3dView::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
|
void CViewer3dView::OnSize(UINT nType, int cx, int cy)
|
||||||
{
|
{
|
||||||
|
CView::OnSize (nType, cx, cy);
|
||||||
if (!myView.IsNull())
|
if (!myView.IsNull())
|
||||||
myView->MustBeResized();
|
myView->MustBeResized();
|
||||||
}
|
}
|
||||||
|
@ -137,8 +137,6 @@ private:
|
|||||||
Standard_Integer myYmin;
|
Standard_Integer myYmin;
|
||||||
Standard_Integer myXmax;
|
Standard_Integer myXmax;
|
||||||
Standard_Integer myYmax;
|
Standard_Integer myYmax;
|
||||||
Standard_Integer myWidth;
|
|
||||||
Standard_Integer myHeight;
|
|
||||||
|
|
||||||
Standard_Integer NbActiveLights;
|
Standard_Integer NbActiveLights;
|
||||||
Standard_Boolean myHlrModeIsOn;
|
Standard_Boolean myHlrModeIsOn;
|
||||||
|
@ -105,10 +105,10 @@ CAnimationView3D::~CAnimationView3D()
|
|||||||
|
|
||||||
BOOL CAnimationView3D::PreCreateWindow(CREATESTRUCT& cs)
|
BOOL CAnimationView3D::PreCreateWindow(CREATESTRUCT& cs)
|
||||||
{
|
{
|
||||||
// TODO: Modify the Window class or styles here by modifying
|
// TODO: Modify the Window class or styles here by modifying
|
||||||
// the CREATESTRUCT cs
|
// the CREATESTRUCT cs
|
||||||
|
cs.lpszClass = ::AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC, ::LoadCursor(NULL, IDC_ARROW), NULL, NULL);
|
||||||
return CView::PreCreateWindow(cs);
|
return CView::PreCreateWindow(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
@ -227,12 +227,13 @@ void CAnimationView3D::OnFileExportImage()
|
|||||||
GetDocument()->ExportView (myView);
|
GetDocument()->ExportView (myView);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CAnimationView3D::OnSize(UINT /*nType*/, int cx, int cy)
|
void CAnimationView3D::OnSize(UINT nType, int cx, int cy)
|
||||||
{
|
{
|
||||||
m_cx = cx ;
|
CView::OnSize (nType, cx, cy);
|
||||||
m_cy = cy ;
|
m_cx = cx ;
|
||||||
if (!myView.IsNull())
|
m_cy = cy ;
|
||||||
myView->MustBeResized();
|
if (!myView.IsNull())
|
||||||
|
myView->MustBeResized();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CAnimationView3D::OnBUTTONBack()
|
void CAnimationView3D::OnBUTTONBack()
|
||||||
|
@ -83,10 +83,10 @@ COCCDemoView::~COCCDemoView()
|
|||||||
|
|
||||||
BOOL COCCDemoView::PreCreateWindow(CREATESTRUCT& cs)
|
BOOL COCCDemoView::PreCreateWindow(CREATESTRUCT& cs)
|
||||||
{
|
{
|
||||||
// TODO: Modify the Window class or styles here by modifying
|
// TODO: Modify the Window class or styles here by modifying
|
||||||
// the CREATESTRUCT cs
|
// the CREATESTRUCT cs
|
||||||
|
cs.lpszClass = ::AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC, ::LoadCursor(NULL, IDC_ARROW), NULL, NULL);
|
||||||
return CView::PreCreateWindow(cs);
|
return CView::PreCreateWindow(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
@ -141,8 +141,9 @@ COCCDemoDoc* COCCDemoView::GetDocument() // non-debug version is inline
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// COCCDemoView message handlers
|
// COCCDemoView message handlers
|
||||||
|
|
||||||
void COCCDemoView::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
|
void COCCDemoView::OnSize(UINT nType, int cx, int cy)
|
||||||
{
|
{
|
||||||
|
CView::OnSize (nType, cx, cy);
|
||||||
if (!myView.IsNull())
|
if (!myView.IsNull())
|
||||||
myView->MustBeResized();
|
myView->MustBeResized();
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,7 @@ BOOL OCC_2dView::PreCreateWindow(CREATESTRUCT& cs)
|
|||||||
{
|
{
|
||||||
// TODO: Modify the Window class or styles here by modifying
|
// TODO: Modify the Window class or styles here by modifying
|
||||||
// the CREATESTRUCT cs
|
// the CREATESTRUCT cs
|
||||||
|
cs.lpszClass = ::AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC, ::LoadCursor(NULL, IDC_ARROW), NULL, NULL);
|
||||||
return CView::PreCreateWindow(cs);
|
return CView::PreCreateWindow(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -471,12 +472,12 @@ void OCC_2dView::OnMouseMove(UINT nFlags, CPoint point)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OCC_2dView::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
|
void OCC_2dView::OnSize(UINT nType, int cx, int cy)
|
||||||
{
|
{
|
||||||
|
OCC_BaseView::OnSize (nType, cx, cy);
|
||||||
// Take care : This fonction is call before OnInitialUpdate
|
// Take care : This fonction is call before OnInitialUpdate
|
||||||
if (!myV2dView.IsNull())
|
if (!myV2dView.IsNull())
|
||||||
myV2dView->MustBeResized();
|
myV2dView->MustBeResized();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OCC_2dView::OnBUTTONFitAll()
|
void OCC_2dView::OnBUTTONFitAll()
|
||||||
|
@ -81,9 +81,10 @@ OCC_3dView::~OCC_3dView()
|
|||||||
|
|
||||||
BOOL OCC_3dView::PreCreateWindow(CREATESTRUCT& cs)
|
BOOL OCC_3dView::PreCreateWindow(CREATESTRUCT& cs)
|
||||||
{
|
{
|
||||||
// TODO: Modify the Window class or styles here by modifying
|
// TODO: Modify the Window class or styles here by modifying
|
||||||
// the CREATESTRUCT cs
|
// the CREATESTRUCT cs
|
||||||
return CView::PreCreateWindow(cs);
|
cs.lpszClass = ::AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_OWNDC, ::LoadCursor(NULL, IDC_ARROW), NULL, NULL);
|
||||||
|
return CView::PreCreateWindow(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
@ -162,8 +163,9 @@ void OCC_3dView::OnFileExportImage()
|
|||||||
GetDocument()->ExportView (myView);
|
GetDocument()->ExportView (myView);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OCC_3dView::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
|
void OCC_3dView::OnSize(UINT nType, int cx, int cy)
|
||||||
{
|
{
|
||||||
|
OCC_BaseView::OnSize (nType, cx, cy);
|
||||||
if (!myView.IsNull())
|
if (!myView.IsNull())
|
||||||
myView->MustBeResized();
|
myView->MustBeResized();
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ void Sample2D_Text::Compute (const Handle(PrsMgr_PresentationManager3d)& /*aPres
|
|||||||
|
|
||||||
asp->SetHorizontalJustification(myHAlign);
|
asp->SetHorizontalJustification(myHAlign);
|
||||||
asp->SetVerticalJustification(myVAlign);
|
asp->SetVerticalJustification(myVAlign);
|
||||||
asp->Aspect()->SetTextZoomable(myIsZoomable);
|
asp->Aspect()->SetTextZoomable(myIsZoomable == Standard_True);
|
||||||
asp->Aspect()->SetTextAngle(myAngle);
|
asp->Aspect()->SetTextAngle(myAngle);
|
||||||
asp->Aspect()->SetTextFontAspect(myFontAspect);
|
asp->Aspect()->SetTextFontAspect(myFontAspect);
|
||||||
asp->SetHeight(myHeight);
|
asp->SetHeight(myHeight);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user