ShowPic22.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. void InitRc();
  33. void AutoPic();
  34. void LoadImage();
  35. public:
  36. ChoosePhotoBase* m_pParent;
  37. CStatic m_sta1;
  38. // 当前显示的相片路径索引;
  39. int m_nCurImgPos;
  40. // 原图片路径数组!变量命名不规则,词不达意更甚。
  41. CStringArray* m_pPathArrayBigsize;
  42. // 原图路径或m图路径(快速选片时);
  43. CStringArray* m_AryOfImgPath;
  44. // 原图Image指针或使用快速选片时m图Image指针(m_AryOfImgPath数组中的相片);
  45. CArray<Image*, Image*> m_AryOfImgPtr;
  46. // 缩略图Image指针,此缩略图与显示器等比例全完整显示,与m_AryOfImgPtr对应;
  47. CArray<Image*, Image*> m_AryOfSmallImgPtr;
  48. // m_AryOfImgPtr元素在m_AryOfImgPath的索引位置;
  49. CArray<int, int> m_nPosArray;
  50. bool m_bRunning; // Flag to whether thread is on running or not
  51. bool m_bTerminate; // Flag to Thread to be terminated
  52. unsigned int m_dwThreadID; // Thread ID
  53. HANDLE m_hThread; // Thread and Event handle
  54. BOOL m_bauto;
  55. // 是否显示相片名称等信息;
  56. BOOL m_bShowImgInfo;
  57. BOOL m_bInit;
  58. BOOL m_bChooseBig;
  59. // 当前显示的图片;
  60. Image* m_pCurShowImg;
  61. private:
  62. // 当前显示的缩略图,与m_pCurShowImg对应;
  63. Image* m_pCurShowSmallImg;
  64. Image* m_pImagetemp;
  65. BOOL m_bcompared;
  66. CPoint m_startpt;
  67. CPoint m_startpt2;
  68. CPoint m_startpt3;
  69. // 原图或缩略图将要显示的区域;
  70. CRect m_rcImgShow;
  71. // 原图或缩略图放大或缩小前的显示区域(在放大或缩小前的备份);
  72. CRect m_rcImgShowBack;
  73. // 屏幕区域大小;
  74. CRect m_rcScreen;
  75. // Picbar控件所在区域;
  76. CRect m_picbarrc;
  77. Bitmap* m_pbmp;
  78. CBitmap m_bmp;
  79. CDC m_memdc;
  80. CPicture m_pic;
  81. BOOL m_bScroll;
  82. float m_fscale;
  83. MyAnimateWindow m_dlg; // 幻灯播放时的出现效果;
  84. PicBar m_PicBar; // 底部工具条;
  85. PreviewDlg m_PreviewDlg; // 右边显示缩略图;
  86. BOOL m_bProcessing;
  87. BOOL m_bShowEffect;
  88. protected:
  89. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  90. virtual BOOL OnInitDialog();
  91. afx_msg void OnPaint();
  92. afx_msg void OnDestroy();
  93. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  94. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  95. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  96. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  97. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  98. afx_msg void OnTimer(UINT nIDEvent);
  99. afx_msg void OnClose();
  100. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  101. afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
  102. afx_msg long ShowInfo2(WPARAM inWParam, LPARAM inLParam);
  103. DECLARE_MESSAGE_MAP()
  104. };
  105. #endif