// EtViewerView.cpp : CEtViewerView Ŭ·¡½ºÀÇ ±¸Çö // #include "stdafx.h" #include "EtViewer.h" #include "EtViewerDoc.h" #include "EtViewerView.h" #include "GlobalValue.h" #include "RenderBase.h" #include "ObjectBase.h" #include "MainFrm.h" #include "PaneDefine.h" #include "UserMessage.h" #include "PropertiesDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CEtViewerView IMPLEMENT_DYNCREATE(CEtViewerView, CView) BEGIN_MESSAGE_MAP(CEtViewerView, CView) // Ç¥ÁØ Àμ⠸í·ÉÀÔ´Ï´Ù. ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview) ON_WM_ERASEBKGND() ON_WM_PAINT() ON_WM_DESTROY() ON_WM_SIZE() ON_COMMAND(ID_PLAY_PLAYPAUSE, &CEtViewerView::OnPlayPlaypause) ON_COMMAND(ID_PLAY_REWIND, &CEtViewerView::OnPlayRewind) ON_COMMAND(ID_PLAY_FORWARD, &CEtViewerView::OnPlayForward) ON_COMMAND(ID_PLAY_PREVF, &CEtViewerView::OnPlayPrev) ON_COMMAND(ID_PLAY_NEXTF, &CEtViewerView::OnPlayNext) ON_WM_KEYDOWN() END_MESSAGE_MAP() // CEtViewerView »ý¼º/¼Ò¸ê CEtViewerView::CEtViewerView() { // TODO: ¿©±â¿¡ »ý¼º Äڵ带 Ãß°¡ÇÕ´Ï´Ù. m_bIdle = false; m_bActivate = false; } CEtViewerView::~CEtViewerView() { } BOOL CEtViewerView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: CREATESTRUCT cs¸¦ ¼öÁ¤ÇÏ¿© ¿©±â¿¡¼­ // Window Ŭ·¡½º ¶Ç´Â ½ºÅ¸ÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù. return CView::PreCreateWindow(cs); } // CEtViewerView ±×¸®±â void CEtViewerView::OnDraw(CDC* /*pDC*/) { CEtViewerDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: ¿©±â¿¡ ¿ø½Ã µ¥ÀÌÅÍ¿¡ ´ëÇÑ ±×¸®±â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. } // CEtViewerView Àμâ BOOL CEtViewerView::OnPreparePrinting(CPrintInfo* pInfo) { // ±âº»ÀûÀÎ Áغñ return DoPreparePrinting(pInfo); } void CEtViewerView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: ÀμâÇϱâ Àü¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. } void CEtViewerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: Àμâ ÈÄ Á¤¸® ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. } // CEtViewerView Áø´Ü #ifdef _DEBUG void CEtViewerView::AssertValid() const { CView::AssertValid(); } void CEtViewerView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CEtViewerDoc* CEtViewerView::GetDocument() const // µð¹ö±×µÇÁö ¾ÊÀº ¹öÀüÀº ÀζóÀÎÀ¸·Î ÁöÁ¤µË´Ï´Ù. { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEtViewerDoc))); return (CEtViewerDoc*)m_pDocument; } #endif //_DEBUG // CEtViewerView ¸Þ½ÃÁö 󸮱â void CEtViewerView::OnInitialUpdate() { CView::OnInitialUpdate(); // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. CGlobalValue::GetInstance().SetView( this ); if( m_bActivate == true ) return; m_bActivate = true; CRenderBase::GetInstance().Initialize( m_hWnd ); char szStr[2048] = { 0, }; GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "ShaderFolder", szStr, 2048 ); if( strlen( szStr ) == 0 ) { CPropertiesDlg Dlg; Dlg.m_bDisableCancel = true; Dlg.DoModal(); } // ±âº» ObjectBase »ý¼º CGlobalValue::GetInstance().ResetObject(); } void CEtViewerView::Refresh() { Invalidate(); Sleep(0); } BOOL CEtViewerView::OnEraseBkgnd(CDC* pDC) { // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº»°ªÀ» È£ÃâÇÕ´Ï´Ù. // return CView::OnEraseBkgnd(pDC); return FALSE; } void CEtViewerView::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // ±×¸®±â ¸Þ½ÃÁö¿¡ ´ëÇØ¼­´Â CView::OnPaint()À»(¸¦) È£ÃâÇÏÁö ¸¶½Ê½Ã¿À. m_bIdle = !CRenderBase::GetInstance().Render(); } void CEtViewerView::OnDestroy() { CView::OnDestroy(); // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CGlobalValue::GetInstance().Finalize(); CRenderBase::GetInstance().Finalize(); } void CEtViewerView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CRenderBase::GetInstance().Reconstruction(); } void CEtViewerView::OnPlayPlaypause() { // TODO: ¿©±â¿¡ ¸í·É 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CWnd *pWnd = GetPaneWnd( ANI_PANE ); if( pWnd ) pWnd->SendMessage( UM_ANICONTROL_ACCEL_KEY, 0 ); } void CEtViewerView::OnPlayRewind() { CWnd *pWnd = GetPaneWnd( ANI_PANE ); if( pWnd ) pWnd->SendMessage( UM_ANICONTROL_ACCEL_KEY, 1 ); } void CEtViewerView::OnPlayForward() { CWnd *pWnd = GetPaneWnd( ANI_PANE ); if( pWnd ) pWnd->SendMessage( UM_ANICONTROL_ACCEL_KEY, 2 ); } void CEtViewerView::OnPlayPrev() { CWnd *pWnd = GetPaneWnd( ANI_PANE ); if( pWnd ) pWnd->SendMessage( UM_ANICONTROL_ACCEL_KEY, 3 ); } void CEtViewerView::OnPlayNext() { CWnd *pWnd = GetPaneWnd( ANI_PANE ); if( pWnd ) pWnd->SendMessage( UM_ANICONTROL_ACCEL_KEY, 4 ); } void CEtViewerView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº»°ªÀ» È£ÃâÇÕ´Ï´Ù. if( nChar == VK_ESCAPE ) { if( CGlobalValue::GetInstance().IsFullScreen() ) ((CMainFrame*)AfxGetMainWnd())->OnFullscreen(); } CView::OnKeyDown(nChar, nRepCnt, nFlags); }