/*[]=====================================================================[]*/ /*[] LEADTOOLS for Windows(Class Library) - Version 11 []*/ /*[] []*/ /*[] []*/ /*[] Copyright (c) 1991-2000 LEAD Technologies, Inc. []*/ /*[] All Rights Reserved. []*/ /*[]=====================================================================[]*/ /*------(Pictrize)--------------------------------------------------------------- We have made the assumption that the user has the knowledge of Object Oriented programing of C under Windows. This example will: 1. Open new pictuer. 2. call the pictureize menu item. this will call LBitmapWindow::Picturize(). 3. you can also Enable ot Disable the picturize call function. ----------------------------------------------------------------------------------*/ // PtzeView.cpp : implementation of the CPicturizeView class // #include "stdafx.h" #include "Pictrize.h" #include "PictDoc.h" #include "PictVw.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPicturizeView IMPLEMENT_DYNCREATE(CPicturizeView, CView) BEGIN_MESSAGE_MAP(CPicturizeView, CView) //{{AFX_MSG_MAP(CPicturizeView) ON_COMMAND(ID_FILE_OPEN, OnFileOpen) ON_COMMAND(ID_FILE_PICTURIZE, OnFilePicturize) ON_UPDATE_COMMAND_UI(ID_FILE_PICTURIZE, OnUpdateFilePicturize) ON_COMMAND(IDD_ENABLE_PIC_CALLBACK, OnEnablePicCallback) ON_UPDATE_COMMAND_UI(IDD_ENABLE_PIC_CALLBACK, OnUpdateEnablePicCallback) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPicturizeView construction/destruction CPicturizeView::CPicturizeView() { // TODO: add construction code here m_bCallback = TRUE; } CPicturizeView::~CPicturizeView() { } ///////////////////////////////////////////////////////////////////////////// // CPicturizeView drawing void CPicturizeView::OnDraw(CDC* pDC) { CPicturizeDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here } ///////////////////////////////////////////////////////////////////////////// // CPicturizeView diagnostics #ifdef _DEBUG void CPicturizeView::AssertValid() const { CView::AssertValid(); } void CPicturizeView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CPicturizeDoc* CPicturizeView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPicturizeDoc))); return (CPicturizeDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CPicturizeView message handlers void CPicturizeView::OnFileOpen() { // TODO: Add your command handler code here L_INT nRet = 0; m_LBitmapWnd.SetWndHandle(GetSafeHwnd()); LBitmap tmpBmp; do { OPENDLGPARAMS FOParm ; OPENFILENAME OpenFileName; memset ( &FOParm, 0, sizeof(OPENDLGPARAMS)) ; memset ( &OpenFileName, 0, sizeof(OPENFILENAME)) ; OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.lpstrInitialDir = NULL; OpenFileName.Flags = OFN_EXPLORER; FOParm.uStructSize = sizeof(OPENDLGPARAMS); FOParm.uDlgFlags = DLG_OPEN_SHOW_PROGRESSIVE | DLG_OPEN_SHOW_MULTIPAGE | DLG_OPEN_SHOW_LOADROTATED | DLG_OPEN_SHOW_LOADCOMPRESSED | DLG_OPEN_SHOW_FILEINFO | DLG_OPEN_SHOW_DELPAGE | DLG_OPEN_SHOW_LOADOPTIONS | DLG_OPEN_VIEWTOTALPAGES ; tmpBmp.DialogFile()->SetOpenParams(&FOParm) ; tmpBmp.DialogFile()->SetOpenFileName(&OpenFileName) ; tmpBmp.DialogFile()->EnablePreview(TRUE); L_BOOL bOldState = tmpBmp.DialogFile()->EnableAutoProcess(TRUE); nRet = tmpBmp.DialogFile()->DoModalOpen(m_hWnd); if (nRet != SUCCESS_DLG_OK) { if ( nRet == SUCCESS_DLG_CANCEL ) return; LBase::DisplayError(AfxGetMainWnd()->m_hWnd, nRet); continue; } }while ( nRet != SUCCESS_DLG_OK ); m_LBitmapWnd.SetHandle(tmpBmp.GetHandle()); } void CPicturizeView::OnFilePicturize() { PICTURIZEDLGPARAMS DlgParams; L_TCHAR szDirectory[MAX_PATH]; memset ( &szDirectory, 0, sizeof (szDirectory) ); memset ( &DlgParams, 0, sizeof ( PICTURIZEDLGPARAMS ) ); DlgParams.uStructSize = sizeof ( PICTURIZEDLGPARAMS ); DlgParams.nCellHeight = 10 ; DlgParams.nCellWidth = 10 ; DlgParams.pszPath = szDirectory; DlgParams.nBitmapHeight = m_LBitmapWnd.GetHeight ( ) ; DlgParams.nBitmapWidth = m_LBitmapWnd.GetWidth ( ) ; DlgParams.uResize = PICTURIZE_RESIZE ; m_LBitmapWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LBitmapWnd.DialogImageEffect()->EnablePreview(TRUE); m_LBitmapWnd.DialogImageEffect()->EnableAutoProcess(FALSE); m_LBitmapWnd.DialogImageEffect()->EnableToolbar(TRUE); m_LBitmapWnd.DialogImageEffect()->SetPicturizeParams(&DlgParams) ; if ( m_LBitmapWnd.DialogImageEffect()->DoModalPicturize(m_hWnd) == SUCCESS_DLG_OK ) { m_LBitmapWnd.DialogImageEffect()->GetPicturizeParams(&DlgParams, sizeof(DlgParams)) ; BeginWaitCursor(); m_LBitmapWnd.EnableCallBack(m_bCallback); L_INT nRet = m_LBitmapWnd.Picturize(DlgParams.pszPath, DlgParams.uResize | PICTURIZE_LOADALL, DlgParams.nCellWidth, DlgParams.nCellHeight) ; m_LBitmapWnd.Repaint(); AfxGetMainWnd()->SetWindowText(_T("Picturizing Process Finished, Example Is Complete. (Class library)")); EndWaitCursor(); } } void CPicturizeView::OnUpdateFilePicturize(CCmdUI* pCmdUI) { pCmdUI->Enable( m_LBitmapWnd.IsAllocated() ); } void CPicturizeView::OnEnablePicCallback() { m_bCallback = !m_bCallback; } void CPicturizeView::OnUpdateEnablePicCallback(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_bCallback); } void CPicturizeView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { // TODO: Add your specialized code here and/or call the base class if(bActivate==TRUE&&pActivateView==this) m_LBitmapWnd.HandlePalette(WM_PALETTECHANGED, 0, 0); CView::OnActivateView(bActivate, pActivateView, pDeactiveView); }