/*[]=====================================================================[]*/ /*[] LEADTOOLS for Windows(Class Library) - Version 11 []*/ /*[] []*/ /*[] []*/ /*[] Copyright (c) 1991-2000 LEAD Technologies, Inc. []*/ /*[] All Rights Reserved. []*/ /*[]=====================================================================[]*/ // LTSCView.cpp : implementation of the CLTScrCprView class // #include "stdafx.h" #include "LTScrCpr.h" #include "LTSCDoc.h" #include "LTSCView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CLTScrCprView IMPLEMENT_DYNCREATE(CLTScrCprView, CView) BEGIN_MESSAGE_MAP(CLTScrCprView, CView) //{{AFX_MSG_MAP(CLTScrCprView) ON_WM_CREATE() ON_COMMAND(IDM_EDIT_COPY, OnEditCopy) ON_UPDATE_COMMAND_UI(IDM_EDIT_COPY, OnUpdateEditCopy) ON_COMMAND(IDM_EDIT_CUT, OnEditCut) ON_UPDATE_COMMAND_UI(IDM_EDIT_CUT, OnUpdateEditCut) ON_COMMAND(IDM_FILE_SAVE, OnFileSave) ON_UPDATE_COMMAND_UI(IDM_FILE_SAVE, OnUpdateFileSave) //}}AFX_MSG_MAP ON_MESSAGE(WM_HANDLEPALETTE, OnHandlePalette) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CLTScrCprView construction/destruction CLTScrCprView::CLTScrCprView() { // TODO: add construction code here } CLTScrCprView::~CLTScrCprView() { } BOOL CLTScrCprView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CLTScrCprView drawing void CLTScrCprView::OnDraw(CDC* pDC) { CLTScrCprDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here } ///////////////////////////////////////////////////////////////////////////// // CLTScrCprView diagnostics #ifdef _DEBUG void CLTScrCprView::AssertValid() const { CView::AssertValid(); } void CLTScrCprView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CLTScrCprDoc* CLTScrCprView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLTScrCprDoc))); return (CLTScrCprDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CLTScrCprView message handlers int CLTScrCprView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // Assign the bitmap window handle from the current view handle m_LBmpWnd.SetWndHandle(GetSafeHwnd()); return 0; } LRESULT CLTScrCprView::OnHandlePalette(WPARAM wParam, LPARAM lParam) { if(lParam == TRUE) { m_LBmpWnd.HandlePalette(WM_PALETTECHANGED, wParam, 0); m_LBmpWnd.Repaint(); } else { if(m_LBmpWnd.HandlePalette(WM_QUERYNEWPALETTE, 0, 0) == FALSE) m_LBmpWnd.Repaint(); } return TRUE; } void CLTScrCprView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { if(bActivate == TRUE&&pActivateView==this) { m_LBmpWnd.HandlePalette(WM_QUERYNEWPALETTE, 0, 0); ::SetFocus(m_LBmpWnd.GetBitmapWnd()); } } void CLTScrCprView::OnEditCopy() { m_LBmpWnd.CopyToClipboard(m_LBmpWnd.GetBitmapWnd()); } void CLTScrCprView::OnUpdateEditCopy(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LBmpWnd.GetBitmapWnd() != NULL); } void CLTScrCprView::OnEditCut() { m_LBmpWnd.CopyToClipboard(m_LBmpWnd.GetBitmapWnd()); GetDocument()->OnCloseDocument(); } void CLTScrCprView::OnUpdateEditCut(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LBmpWnd.GetBitmapWnd() != NULL); } void CLTScrCprView::OnFileSave() { SAVEDLGPARAMS fsp; OPENFILENAME OpenFileName ; memset ( &OpenFileName, 0, sizeof ( OPENFILENAME ) ) ; memset ( &fsp, 0, sizeof ( SAVEDLGPARAMS ) ) ; OpenFileName.lStructSize = sizeof ( OPENFILENAME ) ; OpenFileName.lpstrInitialDir = NULL; OpenFileName.lpstrTitle = _T("Save a File"); OpenFileName.nFilterIndex = 0 ; fsp.uStructSize = sizeof ( SAVEDLGPARAMS) ; fsp.nQFactor = 2 ; fsp.nStampBits = m_LBmpWnd.GetBitsPerPixel(); fsp.nBitsPerPixel = m_LBmpWnd.GetBitsPerPixel(); fsp.nFormat = FILE_BMP; fsp.uSaveMulti = MULTIPAGE_OPERATION_REPLACE ; fsp.uDlgFlags = DLG_SAVE_SHOW_FILEOPTIONS_PROGRESSIVE | DLG_SAVE_SHOW_FILEOPTIONS_MULTIPAGE | DLG_SAVE_SHOW_FILEOPTIONS_STAMP | DLG_SAVE_SHOW_FILEOPTIONS_QFACTOR | DLG_SAVE_SHOW_FILEOPTIONS_J2KOPTIONS | DLG_SAVE_SHOW_FILEOPTIONS_BASICJ2KOPTIONS; m_LBmpWnd.DialogFile()->SetSaveParams(&fsp); m_LBmpWnd.DialogFile()->SetOpenFileName(&OpenFileName); // Save the bitmap automatically from save dlg. if(!m_LBmpWnd.DialogFile()->IsAutoProcessEnabled()) m_LBmpWnd.DialogFile()->EnableAutoProcess(); if(m_LBmpWnd.DialogFile()->DoModalSave(AfxGetMainWnd()->m_hWnd) == SUCCESS_DLG_OK) { L_TCHAR szFileName[41]; GetFileName(szFileName); GetDocument()->SetTitle(szFileName); m_LBmpWnd.Load(); } } void CLTScrCprView::OnUpdateFileSave(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LBmpWnd.GetBitmapWnd() != NULL); } void CLTScrCprView::GetFileName(L_TCHAR *szFN) { // This function split the full path file name into // Drive, path, file name, extention. L_TCHAR szFullFileName[101]; L_TCHAR szFileName[51]; L_TCHAR szFileExtension[5]; L_UINT uSize = sizeof(szFullFileName); memset(szFullFileName, 0, sizeof(szFullFileName)); memset(szFileName, 0, sizeof(szFileName)); memset(szFileExtension, 0, sizeof(szFileExtension)); m_LBmpWnd.GetFileName(szFullFileName, &uSize); _tsplitpath(szFullFileName, NULL, NULL, szFileName, szFileExtension); lstrcat(szFileName, szFileExtension); lstrcpy(szFN, szFileName); }