PreviewFileDlg.cpp
上传用户:alisonmail
上传日期:2013-02-28
资源大小:500k
文件大小:3k
- /////////////////////////////////////////////////////////////////////////////
- // Copyright (C) 1998 by Jorge Lodos
- // All rights reserved
- //
- // Distribute and use freely, except:
- // 1. Don't alter or remove this notice.
- // 2. Mark the changes you made
- //
- // Send bug reports, bug fixes, enhancements, requests, etc. to:
- // lodos@cigb.edu.cu
- /////////////////////////////////////////////////////////////////////////////
- // PreviewFileDlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "resource.h"
- #include "Dib.h"
- #include "DibStatic.h"
- #include "PreviewFileDlg.h"
- #include <dlgs.h>
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CPreviewFileDlg
- IMPLEMENT_DYNAMIC(CPreviewFileDlg, CFileDialog)
- CPreviewFileDlg::CPreviewFileDlg(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
- DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
- CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
- {
- m_ofn.Flags |= (OFN_EXPLORER | OFN_ENABLETEMPLATE);
- m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_FILEOPENPREVIEW);
- m_bPreview = TRUE;
- }
- BEGIN_MESSAGE_MAP(CPreviewFileDlg, CFileDialog)
- //{{AFX_MSG_MAP(CPreviewFileDlg)
- ON_BN_CLICKED(IDC_PREVIEW, OnPreview)
- ON_WM_QUERYNEWPALETTE()
- ON_WM_PALETTECHANGED()
- ON_WM_SETFOCUS()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- BOOL CPreviewFileDlg::OnInitDialog()
- {
- CFileDialog::OnInitDialog();
-
- m_DIBStaticCtrl.SubclassDlgItem(IDC_IMAGE, this);
- GetDlgItem(IDC_PREVIEW)->SendMessage(BM_SETCHECK, (m_bPreview) ? 1 : 0);
-
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CPreviewFileDlg::OnFileNameChange()
- {
- CFileDialog::OnFileNameChange();
- if (m_bPreview)
- m_DIBStaticCtrl.LoadDib(GetPathName()); // the control will handle errors
- }
- void CPreviewFileDlg::OnFolderChange()
- {
- CFileDialog::OnFolderChange();
- m_DIBStaticCtrl.RemoveDib();
- }
- void CPreviewFileDlg::OnPreview()
- {
- m_bPreview = !m_bPreview;
- if (!m_bPreview)
- m_DIBStaticCtrl.RemoveDib(); // no preview
- else
- m_DIBStaticCtrl.LoadDib(GetPathName()); // the control will handle errors
- }
- BOOL CPreviewFileDlg::OnQueryNewPalette()
- {
- m_DIBStaticCtrl.SendMessage(WM_QUERYNEWPALETTE); // redo the palette if necessary
- return CFileDialog::OnQueryNewPalette();
- }
- void CPreviewFileDlg::OnPaletteChanged(CWnd* pFocusWnd)
- {
- CFileDialog::OnPaletteChanged(pFocusWnd);
- m_DIBStaticCtrl.SendMessage(WM_PALETTECHANGED, (WPARAM)pFocusWnd->GetSafeHwnd()); // redo the palette if necessary
- }
- void CPreviewFileDlg::OnSetFocus(CWnd* pOldWnd)
- {
- CFileDialog::OnSetFocus(pOldWnd);
- m_DIBStaticCtrl.SendMessage(WM_QUERYNEWPALETTE); // redo the palette if necessary
- }
- #ifdef _DEBUG
- void CPreviewFileDlg::Dump(CDumpContext& dc) const
- {
- CFileDialog::Dump(dc);
- if (m_bPreview)
- dc << "preview is enabledn";
- else
- dc << "preview is disabledn";
- }
- #endif //_DEBUG