ShowEffect.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #if !defined(AFX_ShowEffectDlg_H__2F27D99E_BAA5_4945_85CE_96D524B078DA__INCLUDED_)
  2. #define AFX_ShowEffectDlg_H__2F27D99E_BAA5_4945_85CE_96D524B078DA__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // ShowEffectDlg.h : header file
  7. //
  8. /////////////////////////////////////////////////////////////////////////////
  9. // ShowEffectDlg dialog
  10. #include <vector>
  11. using namespace std;
  12. #define RCARRARCOUNT 100
  13. class ShowEffectDlg : public CDialog
  14. {
  15. float m_tempscale;
  16. Bitmap *m_pImagebak;
  17. BOOL m_bLoadEffect;
  18. BOOL m_bLoadPhoto;
  19. CArray<int,int>m_rcarray[RCARRARCOUNT]; // m_rcarray数组,用于记录PNG图片里的alpha色小于200的像素点坐标;
  20. Bitmap *m_pImage;
  21. Image *m_pPhoto;
  22. float m_fscale;
  23. CRect m_rcscreen;
  24. CPoint m_startpt;
  25. CPoint m_startpt2;
  26. CStringArray m_effectpatharray;
  27. int m_effectpos;
  28. int m_photopos;
  29. Bitmap *m_pbmp;// m_pbmp:最终显示PNG效果图的Bimap对象(PNG+客人相片 合二为一的结果);
  30. CRect m_rc;
  31. CRect m_rcbak;
  32. // Construction
  33. public:
  34. void GetRgn(Bitmap *pBmpImage);
  35. CStringArray *m_pPhotopatharray;
  36. void RcChange();
  37. void InitRc(Image *img);
  38. void MakeEffect();
  39. ShowEffectDlg(CWnd* pParent = NULL); // standard constructor
  40. vector<CString> m_vFileName;
  41. CImageList m_ImageListThumb; // image list holding the thumbnails
  42. bool m_bRunning; // Flag to whether thread is on running or not
  43. bool m_bTerminate; // Flag to Thread to be terminated
  44. unsigned int m_dwThreadID; // Thread ID
  45. HANDLE m_hThread, m_hEvent; // Thread and Event handle
  46. BOOL TerminateThread();
  47. vector<CString> m_vFileName2;
  48. CImageList m_ImageListThumb2; // image list holding the thumbnails
  49. bool m_bRunning2; // Flag to whether thread is on running or not
  50. bool m_bTerminate2; // Flag to Thread to be terminated
  51. unsigned int m_dwThreadID2; // Thread ID
  52. HANDLE m_hThread2, m_hEvent2; // Thread and Event handle
  53. BOOL TerminateThread2();
  54. // Dialog Data
  55. //{{AFX_DATA(ShowEffectDlg)
  56. enum { IDD = IDD_DLGShowEffect };
  57. CListCtrl m_List2;
  58. CListCtrl m_List1;
  59. //}}AFX_DATA
  60. // Overrides
  61. // ClassWizard generated virtual function overrides
  62. //{{AFX_VIRTUAL(ShowEffectDlg)
  63. protected:
  64. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  65. //}}AFX_VIRTUAL
  66. // Implementation
  67. protected:
  68. // Generated message map functions
  69. //{{AFX_MSG(ShowEffectDlg)
  70. virtual BOOL OnInitDialog();
  71. afx_msg void OnDestroy();
  72. afx_msg void OnPaint();
  73. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  74. afx_msg void OnButton1();
  75. afx_msg void OnButton2();
  76. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  77. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  78. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  79. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  80. afx_msg void OnClickList1(NMHDR* pNMHDR, LRESULT* pResult);
  81. afx_msg void OnTimer(UINT nIDEvent);
  82. afx_msg void OnClickList2(NMHDR* pNMHDR, LRESULT* pResult);
  83. //}}AFX_MSG
  84. DECLARE_MESSAGE_MAP()
  85. };
  86. //{{AFX_INSERT_LOCATION}}
  87. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  88. #endif // !defined(AFX_ShowEffectDlg_H__2F27D99E_BAA5_4945_85CE_96D524B078DA__INCLUDED_)