ShowPic22.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #if !defined(AFX_ShowPic22_H__636EAAC4_D01D_4170_93F6_9E363BB72892__INCLUDED_)
  2. #define AFX_ShowPic22_H__636EAAC4_D01D_4170_93F6_9E363BB72892__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif
  6. #include "JPEG.h"
  7. #include "MyAnimateWindow.h"
  8. #include "PicBar.h"
  9. #include "PreviewDlg.h"
  10. class ChoosePhotoBase;
  11. // 浏览大图;
  12. class ShowPic22 : public CDialog
  13. {
  14. // Construction
  15. public:
  16. ShowPic22(CWnd* pParent = NULL); // standard constructor
  17. enum { IDD = IDD_DLGShowPic2 };
  18. virtual BOOL PreTranslateMessage(MSG* pMsg);
  19. public:
  20. void CutPhoto3();
  21. void CutPhoto2();
  22. void ShowInfo();
  23. void OnMouseWheel2(BOOL bZoomOut);
  24. void RunPicThread();
  25. void InitRc(Image *img, CRect &rc);
  26. void TerminateThread();
  27. void SetEffect(int effect);
  28. void Next();
  29. void Pre();
  30. void Rotate2();
  31. void Rotate1();
  32. // 使图片大小自适应窗口区域;
  33. void InitRc();
  34. void AutoPic();
  35. void LoadImage();
  36. public:
  37. ChoosePhotoBase* m_pParent;
  38. CStatic m_sta1;
  39. // 当前显示的相片路径索引;
  40. int m_nCurImgPos;
  41. // 原始图片路径(如果使用的是快速选片,这里是大图);
  42. CStringArray* m_pAryOriginalImgPath;//m_pPathArrayBigsize;
  43. // 原图路径或m图路径(快速选片时);
  44. CStringArray* m_pAryImgPath;
  45. // 原图Image指针或使用快速选片时m图Image指针(m_AryOfImgPath数组中的相片);
  46. CArray<Image*, Image*> m_AryOfImgPtr;
  47. // 缩略图Image指针,此缩略图与显示器等比例全完整显示,与m_AryOfImgPtr对应;
  48. CArray<Image*, Image*> m_AryOfSmallImgPtr;
  49. // m_AryOfImgPtr元素在m_AryOfImgPath的索引位置;
  50. CArray<int, int> m_nPosArray;
  51. bool m_bRunning; // Flag to whether thread is on running or not
  52. bool m_bTerminate; // Flag to Thread to be terminated
  53. unsigned int m_dwThreadID; // Thread ID
  54. HANDLE m_hThread; // Thread and Event handle
  55. BOOL m_bauto;
  56. // 是否显示相片名称等信息;
  57. BOOL m_bShowImgInfo;
  58. BOOL m_bInit;
  59. BOOL m_bChooseBig;
  60. // 当前显示的图片;
  61. Image* m_pCurShowImg;
  62. private:
  63. // 当前显示的缩略图,与m_pCurShowImg对应;
  64. Image* m_pCurShowSmallImg;
  65. Image* m_pImagetemp;
  66. BOOL m_bcompared;
  67. CPoint m_startpt;
  68. CPoint m_startpt2;
  69. CPoint m_startpt3;
  70. // 原图或缩略图将要显示的区域;
  71. CRect m_rcImgShow; // 由InitRc来获取;
  72. // 原图或缩略图放大或缩小前的显示区域(在放大或缩小前的备份);
  73. CRect m_rcImgShowBack;
  74. // 屏幕区域大小;
  75. CRect m_rcScreen;
  76. // Picbar控件所在区域;
  77. CRect m_picbarrc;
  78. Bitmap* m_pbmp;
  79. CBitmap m_bmp;
  80. CDC m_memdc;
  81. CPicture m_pic;
  82. BOOL m_bScroll;
  83. float m_fscale;
  84. MyAnimateWindow m_dlg; // 幻灯播放时的出现效果;
  85. PicBar m_PicBar; // 底部工具条;
  86. PreviewDlg m_PreviewDlg; // 右边显示缩略图;
  87. BOOL m_bProcessing;
  88. BOOL m_bShowEffect;
  89. protected:
  90. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  91. virtual BOOL OnInitDialog();
  92. afx_msg void OnPaint();
  93. afx_msg void OnDestroy();
  94. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  95. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  96. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  97. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  98. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  99. afx_msg void OnTimer(UINT nIDEvent);
  100. afx_msg void OnClose();
  101. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  102. afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
  103. afx_msg long ShowInfo2(WPARAM inWParam, LPARAM inLParam);
  104. DECLARE_MESSAGE_MAP()
  105. };
  106. #endif