// CScrView.cpp : implementation of the CScrView class // #include "stdafx.h" #include "ScrDemo.h" #include "ScrDoc.h" #include "CScrView.h" #include "leadraster.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern CScrDemoApp theApp; ///////////////////////////////////////////////////////////////////////////// // CScrView IMPLEMENT_DYNCREATE(CScrView, CFormView) BEGIN_MESSAGE_MAP(CScrView, CFormView) //{{AFX_MSG_MAP(CScrView) ON_WM_SIZE() ON_MESSAGE(WM_DOREALIZE, OnDoRealize) ON_COMMAND(ID_FILE_SAVE, OnFileSave) ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs) ON_WM_CLOSE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CScrView construction/destruction CScrView::CScrView() : CFormView(CScrView::IDD) { //{{AFX_DATA_INIT(CScrView) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT // TODO: add construction code here } CScrView::~CScrView() { } void CScrView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CScrView) DDX_Control(pDX, IDC_LEADRASTERVIEW1, m_LEADRasterView1); //}}AFX_DATA_MAP } BOOL CScrView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CFormView::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CScrView diagnostics #ifdef _DEBUG void CScrView::AssertValid() const { CFormView::AssertValid(); } void CScrView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CScrDoc* CScrView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CScrDoc))); return (CScrDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CScrView message handlers void CScrView::OnInitialUpdate() { CFormView::OnInitialUpdate(); m_LEADRasterView1.SetBackErase(FALSE); m_LEADRasterView1.GetRaster().SetBitmap(theApp.m_pRasterScr->GetBitmap()); m_LEADRasterView1.SetRgnFrameType(RGNFRAME_ANIMATED); m_LEADRasterView1.SetPaintPalette(PAINTPALETTE_AUTO); m_LEADRasterView1.MoveWindow(0, 0, int(6+m_LEADRasterView1.GetRaster().GetBitmapWidth()), int(6+m_LEADRasterView1.GetRaster().GetBitmapHeight())); SetScrollSizes(MM_TEXT,CSize((int)m_LEADRasterView1.GetRaster().GetBitmapWidth(), (int)m_LEADRasterView1.GetRaster().GetBitmapHeight())); CLEADRaster LeadRaster = m_LEADRasterView1.GetRaster (); UNLOCKSUPPORT(LeadRaster); } void CScrView::OnSize(UINT nType, int cx, int cy) { if (IsWindow(m_LEADRasterView1.m_hWnd)) { m_LEADRasterView1.SetBackErase(FALSE); m_LEADRasterView1.MoveWindow(0, 0, int(6+m_LEADRasterView1.GetRaster().GetBitmapWidth()), int(6+m_LEADRasterView1.GetRaster().GetBitmapHeight())); } CFormView::OnSize(nType, cx, cy); } LRESULT CScrView::OnDoRealize(WPARAM wParam, LPARAM lParam) { if( !IsWindow(m_LEADRasterView1.m_hWnd) ) return FALSE; if(lParam) { return m_LEADRasterView1.SendMessage(WM_PALETTECHANGED, wParam); } else { return m_LEADRasterView1.SendMessage(WM_QUERYNEWPALETTE,0); } } void CScrView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { // TODO: Add your specialized code here and/or call the base class CFormView::OnActivateView(bActivate, pActivateView, pDeactiveView); if (bActivate) { ASSERT(pActivateView == this); OnDoRealize((WPARAM)theApp.m_pMainWnd->m_hWnd, (LPARAM) FALSE); // same as SendMessage(WM_DOREALIZE); } } static const WCHAR BASED_CODE _szLicString[] = L"LEADTOOLS OCX Copyright (c) 1991-2004 LEAD Technologies, Inc."; void CScrView::OnFileSave() { RECT rcWin; int nRet; ::SetRect(&rcWin, 0, 0, 1, 1); theApp.m_pRasterFileDlg->PutEnableMethodErrors(FALSE); theApp.m_pRasterFileDlg->PutFileDlgFlags(0); theApp.m_pRasterFileDlg->PutDialogTitle("Save File"); theApp.m_pRasterFileDlg->PutBitmap(m_LEADRasterView1.GetRaster().GetBitmap()); theApp.m_pRasterFileDlg->PutUIFlags( SAVE_AUTOPROCESS | SAVE_SHOW_FILEOPTIONS_MULTIPAGE | SAVE_SHOW_FILEOPTIONS_PROGRESSIVE | SAVE_SHOW_FILEOPTIONS_QFACTOR| SAVE_SHOW_FILEOPTIONS_STAMP | SAVE_SHOW_FILEOPTIONS_BASICJ2KOPTIONS| SAVE_SHOW_FILEOPTIONS_J2KOPTIONS); nRet= theApp.m_pRasterFileDlg->ShowSaveDlg((long)this->m_hWnd); if(nRet !=0) { CString str; str.Format(TEXT("A LEADTOOLS error has occured.\nCODE = %d"), nRet); MessageBox(str); return; } } void CScrView::OnFileSaveAs() { OnFileSave(); } BEGIN_EVENTSINK_MAP(CScrView, CFormView) //{{AFX_EVENTSINK_MAP(CScrView) ON_EVENT(CScrView, IDC_LEADRASTERVIEW1, 15 /* KeyPress */, OnKeyPressLeadrasterview1, VTS_I2) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() void CScrView::OnKeyPressLeadrasterview1(short KeyAscii) { // TODO: Add your control notification handler code here } void CScrView::OnClose() { // TODO: Add your message handler code here and/or call default CFormView::OnClose(); }