ChoosePhotoSkin2.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. #if !defined(AFX_ChoosePhotoSkin2_H__10660444_160F_41F4_9A1D_50A4F7C66150__INCLUDED_)
  2. #define AFX_ChoosePhotoSkin2_H__10660444_160F_41F4_9A1D_50A4F7C66150__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif
  6. #include "ChoosePhotoBase.h"
  7. //文件夹信息
  8. typedef struct _SFolderInfo
  9. {
  10. CString strName;
  11. CStringArray AllPhotoPath; // 查看全部相片;相片名的全路径名;
  12. CStringArray SelPhotoPath; // 查看选中相片;
  13. CStringArray NoSelPhotoPath; // 查看未选相片;
  14. CStringArray DelPhotoPath; // 查看删除相片;相片名的全路径名;
  15. CStringArray IntoAlbumPath; // 查看入册相片;
  16. CStringArray EntryPhasepath; // 查看入底相片;
  17. }SFolderInfo;
  18. // 选片
  19. class ChoosePhotoSkin2 : public ChoosePhotoBase
  20. {
  21. public:
  22. enum { IDD = IDD_DLGChoosePhotoSkin2 };
  23. ChoosePhotoSkin2(DWORD id, CWnd *pParent);
  24. ChoosePhotoSkin2(CWnd* pParent = NULL); // standard constructor
  25. protected:
  26. virtual BOOL OnInitDialog();
  27. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  28. virtual BOOL PreTranslateMessage(MSG* pMsg);
  29. afx_msg void OnPaint();
  30. afx_msg void OnDestroy();
  31. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  32. afx_msg void OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args);
  33. afx_msg void OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult);
  34. afx_msg void OnClose();
  35. afx_msg void OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult);
  36. afx_msg void OnButton4(); // 保存按钮
  37. afx_msg void OnClickList1(NMHDR* pNMHDR, LRESULT* pResult);
  38. afx_msg void OnTimer(UINT nIDEvent);
  39. DECLARE_EVENTSINK_MAP()
  40. //}}AFX_MSG
  41. void OnCommandMenu(UINT nID); //响应菜单命令
  42. afx_msg VOID OnNewFolder();
  43. afx_msg VOID OnDelFolder();
  44. afx_msg VOID OnOpenFolder();
  45. afx_msg VOID OnReturnMainDir();
  46. #ifdef VC60
  47. afx_msg void OnBtnClick(WPARAM wParam, LPARAM lParam);
  48. #else
  49. afx_msg LRESULT OnBtnClick(WPARAM wParam, LPARAM lParam);
  50. #endif
  51. afx_msg void OnComMsg(WPARAM wParam, LPARAM lParam);
  52. afx_msg long UpdateTakeZS(WPARAM inWParam, LPARAM inLParam);
  53. DECLARE_MESSAGE_MAP()
  54. public:
  55. virtual void LoadPhotos();
  56. virtual BOOL ReLoad();
  57. virtual BOOL OnDel();
  58. virtual BOOL GetData();
  59. //点击右键事件
  60. virtual void OnRclickList1();
  61. virtual void UpdateChooseZS();
  62. virtual CStringArray* GetCurArray(const int nIndx, SFolderInfo* m_pForder = NULL);
  63. virtual CString GetZSInfo(int iItem);
  64. virtual void GetNoSelPhoto();
  65. //获取所有文件夹名
  66. virtual void GetAllFolderNames(CString& strNames);
  67. //绘制界面
  68. virtual void DrawInterface();
  69. //绘制工作
  70. virtual void DrawImageWork();
  71. //获取路径添加到选中相片
  72. virtual int GetPathAddToSel(CStringArray* pSelArr, const CString& strName, CStringArray* pAllArr);
  73. //通过文件夹获取所有文件
  74. virtual void GetAllFileFromFolder(const int nType, CString& strFileNames);
  75. public:
  76. //加载文件夹
  77. void LoadFolder();
  78. //查看选中相片
  79. void OnSelPhoto();
  80. //查看入底相片
  81. void GetDiskPhoto();
  82. //查看入册相片
  83. void GetAlbumPhoto();
  84. //绘制
  85. void DrawImage(CListCtrl* pListCtrl, CImageList* pImgList);
  86. //获取文件夹数据
  87. int GetFolderData(CArray<CStringArray, CStringArray>& folderarr);
  88. //添加文件夹
  89. SFolderInfo* AddFolder(const CString& strName);
  90. //通过文件名删除文件夹
  91. int DelFolderFromName(const CString& stName);
  92. //移动文件子目录到主目录
  93. int MoveFileSubToMain(SFolderInfo* pCurrForder, const int nCurrSelIndx = 0);
  94. //移动文件主目录到子目录
  95. int MoveFileMainToSub(vector<CString>& vMoveFile, SFolderInfo* pCurrSelForder, const int nCurrSelIndx = 0);
  96. //通过索引查找文件夹
  97. SFolderInfo* FindForderFromIndx(const int nIdx);
  98. //显示文件夹菜单
  99. int ShowFolderMenu(const int nType, const LPCTSTR pName);
  100. //显示文件夹菜单
  101. int ShowFolderMenu(vector<SMenuBtnData>& vdata);
  102. //清除所有文件夹
  103. void ClearFolder();
  104. #if USE_SHARE_FLORD
  105. void LoadSelectPhotos();
  106. void LoadDesignPhotos();
  107. void LoadNecessaryImage(IN CStringArray &strAryOfEarlyImage, IN CStringArray &strAryOfOriginalImage, IN const int &nSelectType);
  108. void LoadSpecifiedDirectoryPhotos(IN LPCTSTR lpSpecifiedDirectory, OUT CStringArray &strArray, IN BOOL bEffect, IN CStringArray *pEarlyDirectory /*= NULL*/, IN CStringArray *pEarlyImages = NULL );
  109. #endif //#if USE_SHARE_FLORD
  110. private:
  111. void SortArray();
  112. void CheckForAlbum();
  113. int GetPathAddToSel(const CString& strName);
  114. BOOL IsSelAlbumPhoto(CString path);
  115. void CheckForDisk();
  116. //通过文件夹名读取文件
  117. void GetNamesFromFoler(const CString& strFolder, const CString& strPhotos, CStringArray& arr);
  118. //从文件夹名集里获取文件夹名
  119. void GetFolderFromFolders(const CString& strFolders);
  120. //获取文件夹里删除的相片名
  121. void GetFolderDelPhotos(CString& strDel);
  122. //获取删除的所有相片名
  123. void GetDelPhotos(CStringArray* pDelPhotoArr, CString& strDelPhotos);
  124. void GetDelPhotos(const CString& strFolderName, CStringArray* pDelPhotoArr, const BOOL bAddEnd, CString& strDelPhotos);
  125. BOOL IsSelDiskPhoto(CString path);
  126. //双击
  127. void OnDblclkList1();
  128. //添加列表项名
  129. int AddListItemName(CListCtrl* pListCtrl);
  130. // Construction
  131. public:
  132. CString m_strStatusOfChoosePhoto; // Jeff.add 2014.08.30。
  133. Image* m_pFolderImg; //文件夹icon
  134. SFolderInfo* m_OpenFolder;
  135. SFolderInfo* m_pCurrSelFolder; //当前文件夹
  136. vector<SFolderInfo*> m_vFolder; //文件夹
  137. };
  138. #endif