123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- #ifndef __CHOOSEPHOTOBASE_H__
- #define __CHOOSEPHOTOBASE_H__
- #include "MyBmpButton2.h"
- #include "resource.h"
- #include <afxtempl.h>
- #include "shockwaveflash.h"
- #include "EditListCtrl.h"
- #include "ShowSelPhoto.h"
- #include "ShowSelPhoto2.h"
- #include "DragListCtrl.h" // add by Jeff 2015.04.06
- #include "DragDropListCtrl.h" // add by Jeff 2015.04.06
- #include <vector>
- using namespace std;
- #define THUMBNAIL_WIDTH 100
- #define THUMBNAIL_HEIGHT 90
- //文件类型;
- typedef enum _FILETYPE
- {
- TYPE_FOLDER = 1, //文件夹;
- TYPE_ICON //图标;
- }FILETYPE;
- //查看相片时的操作类型索引;
- typedef enum _OPERTYPEINDX
- {
- INDX_ALL = 0, //全部;
- INDX_SEL, //选中;
- INDX_NOSEL, //未选;
- INDX_DEL, //删除;
- INDX_INTOALBUM, //入册;
- INDX_ENTRYPHASSE //入底;
- }OPERTYPEINDX;
- //图片资源;
- typedef struct _SResData
- {
- int nType; //文件类型;
- CString strName; //文件名;
- CString strFilePath; //文件图片全路径;
- }SResData;
- //菜单按钮信息;
- struct SMenuBtnData
- {
- UINT nID;
- CString strBtnName;
- SMenuBtnData(const UINT n, const LPCTSTR pName)
- {
- nID = n;
- strBtnName = pName;
- }
- };
-
- typedef struct _SFolderInfo SFolderInfo;
- // 选片、选设计基类;
- class ChoosePhotoBase : public CDialog
- {
- public:
- ChoosePhotoBase();
- ChoosePhotoBase(DWORD id, CWnd *pParent);
- virtual ~ChoosePhotoBase();
- virtual BOOL OnInitDialog();
-
- virtual CStringArray* GetCurArray(const int nIndx, SFolderInfo* m_pForder = NULL);
- virtual BOOL OnDel();
- //点击右键事件
- virtual void OnRclickList1();
- virtual CString GetZSInfo(int iItem);
- virtual BOOL ReLoad();
- virtual BOOL GetData();
- virtual void UpdateChooseZS();
- virtual void LoadPhotos();
- virtual void GetNoSelPhoto();
- virtual void GetDelPhotos(OUT CString& strDelPhotos);
- //获取所有文件夹名;
- virtual void GetAllFolderNames(CString& strNames);
- // 排序;
- virtual void ChoosePhotoBase::SortArray2(CArray<int, int>&datearray);
- // 创建线程加载函数LoadThumbNail3;
- virtual void LoadThumbImages();
- virtual BOOL TerminateThread();
- // 绘制工作;
- virtual void DrawImageWork() = 0;
- // 缩放图片大小;
- virtual void ZoomImage(Image* pImage, Rect& desRt);
- // 绘制界面;
- virtual void DrawInterface();
- // 获取路径添加到选中相片;
- virtual int GetPathAddToSel(CStringArray* pSelArr, const CString& strName, CStringArray* pAllArr);
- virtual void OnPaint2(CWnd *pWnd);
- //通过文件夹获取所有文件;
- virtual void GetAllFileFromFolder(const int nType, CString& strFileNames);
- public:
- static CString GetModifyTime2(CString path);
- // 从相片编号获取路径;
- static CString GetPathFromNo2(CString dir, CString no, CStringArray *pArray);
- // 从相片编号获取路径;
- static CString GetPathFromNo(CString dir, CString no, CStringArray *pArray);
- void SetLiaPath(CString path);
- int DelPhotoFromName(CStringArray& arr, const CString& strName);
- int GetZS(CString str);
- int GetCrrSel(){return m_SelectCategory;}
- void GetSelCountFromName(CString name, CString &scount);
- // 获取全部图片路径;
- void GetAllPhotoPath(CString& strDirPath, CStringArray& arr);
- // 获取套系名称;
- void GetTXName(const CString* pStrOrder, const int nModle, BOOL& bGrowthTx, CString& strTxName);
- void GetPhotos();
- // 判断字符串是否是数字组成;
- BOOL CheckOK(CString name);
- BOOL CheckName(CString name);
- CString GetSelName(CString name);
- // 清除资源的路径;
- void ClearResData();
- // 记录要删除的相片;
- void RecordDeletedPhotos(CString* pStrDel, CStringArray& arr);
- // 添加选中相片;
- int AddPhotoFromDir(CStringArray* pSelArr, const CString& strDir, CString& str);
- void Save(IN LPCTSTR lpPath, IN LPCTSTR lpFileName);
- BOOL IsPhoto2Exist();
- // 文件是否存在;
- BOOL IsFileExistInDir(CString* pPath);
- // 是否选取相片;
- BOOL IsSelPhoto(CString strPhotoName);
- // 检查本机上是否有缓存的相片;
- BOOL IsThereACacheImg();
- // 获取未选相片数量;
- int GetNoSelPhotoCount(CStringArray* pAllPhotoPath, CStringArray* pSelPhotoPath);
- void CalChooseZS(CStringArray* pSelArr, CStringArray* pAllArr);
- //重新从资源里加载图片;
- int ReLoadImageFromRes(Image** pImageOut, const CString& strFile, BOOL& bNulling);
-
- //检测目录是否存在;
- BOOL IsShareFolderExist(CString& strSharePath);
- protected:
- BOOL m_bSort;
- BOOL m_bCanSave;
- int m_ticks;
- int m_timer;
- int m_nChoosePhotoType; // =0:修片; =1:原片 =2:原片+修片;
- CString m_sChooseFilter;
- CStringArray m_DirArrayBuf;
- ShowSelPhoto m_selphotownd;
- ShowSelPhoto2 m_selphotownd2;
- public:
- CString m_liapath;
- CString m_path; // 选片或看设计的片种目录;
- CString m_strOrderNumber;
- CString m_status8;
- CString m_name;
- CString m_seltxname; // 选片时选中的套系名或景点名;
- CString taoxiname;
- CString m_taoxijiage;
- CString m_waiter1;
- CString m_waiter2;
- CString m_clothescount;
- CString ren;
- CString m_time5old;
- CString m_time6old;
- CString m_checkstatus; // 未看 或者 OK;
- CString m_size;
- CString m_oldmoney3;
- CString m_name1;
- CString m_name2;
- CString m_phone1;
- CString m_phone2;
- CString m_time4;
- CString m_waiter3; // 选片人员(g_user.name当前登陆系统人员)
- CString m_takezs;
- CString m_taoxizs;
- CString m_choosezs;
- CString m_money3;
- CString m_urgent;
- CString m_bz3;
- CString m_bz4;
- CString m_bz2;
- CString m_time5;
- CString m_time6;
- CString m_delphotos; // dindan.delphotos字段里保存着删除的相片,格式:001;002;003;004;
- CStringArray m_AllPhotoPath; // 查看全部相片;相片名的全路径名;
- CStringArray m_SelPhotoPath; // 查看选中相片;
- CStringArray m_NoSelPhotoPath; // 查看未选相片;
- CStringArray m_DelPhotoPath; // 查看删除相片;相片名的全路径名;
- CStringArray m_IntoAlbumPath; // 查看入册相片;
- CStringArray m_EntryPhasepath; // 查看入底相片;
- CArray<CStringArray, CStringArray> m_oldsparray; // 表dindansp3;
- CArray<CStringArray, CStringArray> m_sparray; // 表shangpin:订单号、商品名、商品单位、商品价格1、价格2、价格3、类别、是否上架、备注;
- CArray<CStringArray, CStringArray> m_List2array; // 表shangpin;
- int m_SelectCategory; // 作用:当前欲查看的相片(全部、选中、未选、删除、入册、入底);
- int m_Runingmode; // 作用:选片模式==0、看设计模式==1, 默认为0;
- BOOL m_bSave;
- int m_bModify; // 修改;
- BOOL m_bSaveFail;
- BOOL m_bGrowthTX;
- BOOL m_bHide; //是否显示小图;
- BOOL m_bFromLocal; //是否通过本地获取相图路径;
- bool m_bRunning; // 线程运行标志;
- bool m_bTerminate; // 线程终止的标志;
- unsigned int m_dwThreadID; // Thread ID;
- HANDLE m_hThread;
- HANDLE m_hEvent; // Thread and Event handle;
- vector<SResData*> m_vResData; //
- HWND m_showpichwd;
- Image* m_pHideImg; // 相片icon;
- Image* m_pBk;
- CArray<DWORD, DWORD> m_picarray; // DWORD = MyBmpButton2*地址;
- CArray<CRect, CRect> m_rcarray; // MyBmpButton2位置;
- // dindansp.no或no2的记录(未使用);
- CStringArray m_noarray;
- // dindansp.no或no2的记录;
- CStringArray m_no2array;
- // CListCtrl m_ListCtrl;
- CImageList m_ImageListThumb; // image list holding the thumbnails
- // dindansp表: 自动id、编号、商品名称、价格、数量、(p数、张数、)照片编号;
- CEditListCtrl m_List3;
- // dindansp表: 用于显示dindansp表,商品编号,商品名,数量;
- CEditListCtrl m_List2;
- CComboBox m_combo1;
- #if JEFF_TEST_ON
- //CDragListCtrl m_List1;
- CDragDropListCtrl m_List1;
- #else
- CListCtrl m_List1;
- #endif
- };
- #endif // #ifndef __CHOOSEPHOTOBASE_H__
|