www.pudn.com > ImageVidwer.rar > ImageViewerDlg.h


// ImageViewerDlg.h : header file 
// 
extern "C" { 
#include "../JpegLib/jpeglib.h" 
} 
#include "ByteArray.h" 
#include "STScreenBuffer.h" 
#include "DIBSectionCE.h" 
 
#if !defined(AFX_IMAGEVIEWERDLG_H__0F141971_BB5D_431E_9B78_CB5A6CDFEEAC__INCLUDED_) 
#define AFX_IMAGEVIEWERDLG_H__0F141971_BB5D_431E_9B78_CB5A6CDFEEAC__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
#define IMG_UNKNOWN	0xFFFFFFFF 
#define IMG_BMP		0 
#define IMG_JPG		1 
#define MAX_ZOOM	4	// 2^3  =8 
 
///////////////////////////////////////////////////////////////////////////// 
// CImageViewerDlg dialog 
typedef struct InitInfmation			 
{ 
	int	     FileviewPosition; 
	int 	     FileListSize; 
	int	     CurrentFileNO; 
	CString   SourceFile;		//上次打开的文件及目录 
	//CStringArray FileList; 
	  
} RunInit; 
 
 
class CImageViewerDlg : public CDialog 
{ 
private: 
	bool		m_InitDC; 
	HBITMAP m_hBitmap;		 
	CDIBSectionCE m_DIBSection; 
	CRect	m_DefaultRect;		//图片窗口位置常数  非全屏时  
	CSize	m_ImageSize;		//图片大小 
	CPoint	m_CenterPt;			//图像视中心点 
	CPoint	m_DownPt;			//记录鼠标按下点用于图片拖动 
	int		m_Zoom;			//比例编号  0--3 表示 1--8倍 
	float		m_Scale;			//象素缩放比例 
 
	int		m_SrcWidth;			//资源位置 用于 StretchBlt 
	int		m_SrcHeight; 
	int		m_SrcStartX; 
	int		m_SrcStartY; 
	 
	int		m_DstWidth;			//目标位置用于StretchBlt 
	int		m_DstHeight; 
	int		m_DstStartX; 
	int		m_DstStartY; 
	 
	int		m_FileNumber; 
	int		m_DelayTime; 
 
	bool		m_bFullScreen; 
	bool		m_bAutoPlay; 
	bool		m_bReDraw; 
	CString 	m_SourceFile;    		//文件名及路径 
	CString 	m_TitleText; 
 
	CDC		m_BgDC; 
	//CDC		m_MemDC; 
 
	RunInit	m_InitInf; 
// Construction 
public: 
	CRect 	GetZoomRect(CRect* rcScreen,CSize sizePicture);    //没有调用 
	CString 	GetFileName(CString strFileName); 
	void 	ShowControl(BOOL bShow); 
	void 	ZoomImage(int iZoom); 
	void  Zoom2FullScreen(void);	 
	int	GetImageType(CString strFileName); 
	bool 	LoadImage(CString strFileName); 
	HBITMAP LoadImageJPG(const CString &strFileName); 
	CImageViewerDlg(CWnd* pParent = NULL);	// standard constructor 
	~CImageViewerDlg(); 
// Dialog Data 
	//{{AFX_DATA(CImageViewerDlg) 
	enum { IDD = IDD_IMAGEVIEWER_DIALOG }; 
	CBmpButton	m_butZoomOut; 
	CBmpButton	m_butOpen; 
	CBmpButton	m_butZoomIn; 
	CBmpButton	m_butNext; 
	CBmpButton	m_butFullScreen; 
	CBmpButton	m_butClose; 
	CBmpButton	m_butBack; 
	CBmpButton	m_butAutoPlay; 
	//}}AFX_DATA 
 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CImageViewerDlg) 
	protected: 
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
	HICON m_hIcon; 
 
	// Generated message map functions 
	//{{AFX_MSG(CImageViewerDlg) 
	virtual BOOL OnInitDialog(); 
	afx_msg void OnPaint(); 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg void OnButtonAutoplay(); 
	afx_msg void OnButtonBack(); 
	afx_msg void OnButtonClose(); 
	afx_msg void OnButtonFullscreen(); 
	afx_msg void OnButtonNext(); 
	afx_msg void OnButtonOpen(); 
	afx_msg void OnButtonZoomin(); 
	afx_msg void OnButtonZoomout(); 
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point); 
	afx_msg void OnTimer(UINT nIDEvent); 
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point); 
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_IMAGEVIEWERDLG_H__0F141971_BB5D_431E_9B78_CB5A6CDFEEAC__INCLUDED_)