MainFrm.h 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. // MainFrm.h : CMainFrame 类的接口
  2. //
  3. #pragma once
  4. #include "TRAYICON.H"
  5. #include "ViewManager.h"
  6. #include "WindowManager.h"
  7. #include "DlgBmp.h"
  8. #include "ChildFrm.h"
  9. #include "OOExToolBar.h"
  10. #include "DlgDevice.h"
  11. #include "DlgComport.h"
  12. #include "IDEDoc.h"
  13. #include "RealEventDlg.h"
  14. #include "Dlg_ToolBar.h"
  15. #include "Dlg_ZuTaiAdd.h"
  16. #include "DlgOfTop.h"
  17. #define USE_NEWTOP 0 // [7/27/2013 Zero]
  18. #define WM_MY_NEW_ALERT WM_USER + 102
  19. #define VIEW_MAX_NUM 1000 //画面最大数
  20. typedef struct tag_PIC_VAR {
  21. CString sPicPath;
  22. CString sCaption[1000];
  23. int nType[1000];//0:m_bVariant 1:m_strDynShow
  24. } PIC_VAR;
  25. class CMDIAutoHideFrame;
  26. class CMainFrame : public CMDIAutoHideFrame
  27. {
  28. DECLARE_DYNAMIC(CMainFrame)
  29. public:
  30. CMainFrame();
  31. // 属性
  32. public:
  33. //////////////////////////////////
  34. // Tab View 变量
  35. CViewManager m_wndViewManager;
  36. CMDIClient m_MDIClient;
  37. ////////////////////////////////
  38. //TrayIcon相关变量
  39. CTrayIcon m_trayIcon; // my tray icon
  40. BOOL m_bShutdown; // OK to terminate TRAYTEST
  41. BOOL m_bShowTrayNotifications; // display info in main window
  42. //左边树形
  43. CcHnDockPageBar m_hleftDockBar; // 左边停靠栏 [8/6/2013 Zero]
  44. CTreeCtrl m_wndTree;
  45. //通知列表
  46. CDockPageBar m_hbottomDockBar; // 底部停靠栏 [8/6/2013 Zero]
  47. CRealEventDlg* m_dlgEvent;
  48. //上面工具栏
  49. CDockPageBar m_htopDockBar; // 顶端停靠栏 [8/6/2013 Zero]
  50. #if USE_NEWTOP
  51. CDlg_ToolBar *m_pToolBar;
  52. #else
  53. CDlgOfTop *m_wndOfTop;
  54. #endif
  55. WINDOWPLACEMENT m_wpPrev;
  56. CRect m_FullScreenWindowRect;
  57. CMenu m_OrgMenu;
  58. CRect m_mainRect;
  59. CStatusBar m_wndStatusBar;
  60. ////////////////////////////////////
  61. // 子窗体
  62. CChildFrame *m_pViewIDE[MAX_VIEW_NUM];
  63. CFormView *m_pActiveView;
  64. int m_nViewCount;
  65. CIDEDoc *m_pDoc;
  66. CDlgDevice m_wndDevice;
  67. CDlgComport m_wndComport;
  68. CDlg_ZuTaiAdd *m_pDlgZuTaiAdd;
  69. HTREEITEM m_hSerialGroup[MAX_SERIAL_NUM]; //串口组
  70. HTREEITEM m_hSerialDev[MAX_SERIAL_NUM][MAX_DEVICE_NUM]; //串口设备
  71. HTREEITEM m_hNetworkDev[MAX_NETWORK_NUM]; //以太网设备
  72. HANDLE m_hViewPollThread;
  73. protected: // 控件条嵌入成员
  74. CToolBar m_wndToolBar;
  75. CToolBar m_wndDrawToolBar;
  76. CToolBar m_wndDrawAlignBar;
  77. //COOBmpToolBar m_wndRunToolBar;
  78. bool m_bHideLeft;
  79. CDlgBmp* m_dlgControl;
  80. CImageList m_wndImageList;
  81. private:
  82. HTREEITEM m_hMonitor; //监控站
  83. HTREEITEM m_hIOGroup; //IO
  84. HTREEITEM m_hScript; //脚本设置
  85. HTREEITEM m_hActionWithAlarm; //报警联动
  86. HTREEITEM m_hVariant; //数据字典
  87. public:
  88. HTREEITEM m_hSerial; //232设置
  89. HTREEITEM m_hEtherNet; //以太网设置
  90. private:
  91. HTREEITEM m_hAnalog; //变量
  92. HTREEITEM m_hSystem; //系统参数
  93. HTREEITEM m_hCurrent; //当前所选
  94. CPoint m_mousePoint;
  95. HTREEITEM m_hScriptGroup[MAX_SCRIPT_NUM]; //脚本
  96. int m_nPortNum, m_nDeviceNum; //串口数和设备数
  97. int m_nScripts;
  98. // 操作
  99. public:
  100. static DWORD WINAPI ViewPollThread( void *pData );
  101. void OnEditCommond();
  102. void ManageHisData();
  103. void LoadEventPara();
  104. void StoreEventPara();
  105. void SetEventPara();
  106. void StoreRunPara(BOOL bStartRun);
  107. void HideRunBar();
  108. void AddIDEView(CString strDesc, CString strPath);
  109. int GetIDEViewIndex(CString strPath);
  110. void AddDevice();
  111. void DeleteDev(int nIsHint);
  112. void InitTreeInfo(void);
  113. int FinishedAddDevice(int nIsDelete, CString strUid);
  114. private:
  115. BOOL InstallIcons();
  116. void FileSearch(HTREEITEM hItem, CString strPath, CString strFileName, int nLayer);
  117. BOOL DirSearch(CString strPath, CString strFileName);
  118. BOOL FindTreeItem(HTREEITEM hSrcItem, HTREEITEM hDestItem);
  119. void OnRun();
  120. int GetIDEViewFreeIndex(CString strPath);
  121. bool ShowView(void);
  122. void DeleteDirectory(CString strDir);
  123. void LoadRunPara();
  124. void SetRunPara();
  125. public:
  126. int GetNetworkChannelIndex();
  127. int GetFreeSerialTreeItem();
  128. int GetFreeNetworkTreeItem();
  129. int GetIndexSerialTreeItem(CString strSrc);
  130. int GetIndexNetworkTreeItem(CString strSrc);
  131. int ShowDevProperty(HTREEITEM hSelectedItem);
  132. void ShowCaptionMenu(BOOL bShow);
  133. // 重写
  134. public:
  135. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  136. // 实现
  137. public:
  138. virtual ~CMainFrame();
  139. #ifdef _DEBUG
  140. virtual void AssertValid() const;
  141. virtual void Dump(CDumpContext& dc) const;
  142. #endif
  143. // 生成的消息映射函数
  144. protected:
  145. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  146. #if USE_TRAYICON
  147. afx_msg LRESULT OnTrayNotification(WPARAM wp, LPARAM lp);
  148. afx_msg LRESULT OnTaskBarCreated(WPARAM wp, LPARAM lp);
  149. #endif
  150. DECLARE_MESSAGE_MAP()
  151. public:
  152. afx_msg void OnClose();
  153. afx_msg void OnSuperEnd();
  154. afx_msg void OnTrayOpen();
  155. protected:
  156. virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
  157. public:
  158. afx_msg void OnAdddevoce();
  159. afx_msg void OnUpdateAdddevoce(CCmdUI *pCmdUI);
  160. afx_msg void OnZuTaiAdd();
  161. afx_msg void OnUpdateZuTaiAdd(CCmdUI *pCmdUI);
  162. afx_msg void OnDeleteport();
  163. afx_msg void OnUpdateDeleteport(CCmdUI *pCmdUI);
  164. afx_msg void OnAddPort();
  165. afx_msg void OnUpdateAddPort(CCmdUI *pCmdUI);
  166. afx_msg void OnAddScript();
  167. afx_msg void OnUpdateAddScript(CCmdUI *pCmdUI);
  168. afx_msg void OnAddview();
  169. afx_msg void OnUpdateAddview(CCmdUI *pCmdUI);
  170. afx_msg void OnAddview2();
  171. afx_msg void OnUpdateAddview2(CCmdUI *pCmdUI);
  172. afx_msg void OnEditSort();
  173. afx_msg void OnUpdateEditSort(CCmdUI *pCmdUI);
  174. afx_msg void OnDeletedevice();
  175. afx_msg void OnUpdateDeletedevice(CCmdUI *pCmdUI);
  176. afx_msg void OnDeleteview();
  177. afx_msg void OnUpdateDeleteview(CCmdUI *pCmdUI);
  178. afx_msg void OnModifyViewName();
  179. afx_msg void OnUpdateModifyViewName(CCmdUI *pCmdUI);
  180. afx_msg void OnDeletescript();
  181. afx_msg void OnUpdateDeletescript(CCmdUI *pCmdUI);
  182. afx_msg void OnSetscript();
  183. afx_msg void OnUpdateSetscript(CCmdUI *pCmdUI);
  184. afx_msg void OnEditscript();
  185. afx_msg void OnUpdateEditscript(CCmdUI *pCmdUI);
  186. afx_msg void OnDestroy();
  187. afx_msg void OnUsers();
  188. afx_msg void OnUpdateUsers(CCmdUI* pCmdUI);
  189. afx_msg void OnEditPwdTool();
  190. afx_msg void OnUpdateEditPwd(CCmdUI* pCmdUI);
  191. afx_msg void OnSysPara();
  192. afx_msg void OnUpdateSysPare(CCmdUI* pCmdUI);
  193. afx_msg void OnEventmanage();
  194. afx_msg void OnEvent();
  195. afx_msg void OnUpdateEvent(CCmdUI* pCmdUI);
  196. afx_msg void OnSummaryLog();
  197. afx_msg void OnUpdateSummaryLog(CCmdUI* pCmdUI);
  198. afx_msg void OnControldialog();
  199. afx_msg void OnTimer(UINT nIDEvent);
  200. afx_msg void OnUserManager();
  201. afx_msg void OnEditPwd();
  202. afx_msg void OnSingleAnalog();
  203. afx_msg void OnUpdateSingleAnalog(CCmdUI* pCmdUI);
  204. afx_msg void OnGroupManager();
  205. afx_msg void OnSystemLog();
  206. afx_msg void OnUpdateSystemLog(CCmdUI* pCmdUI);
  207. afx_msg void OnNoticeRec();
  208. afx_msg void OnUpdateNoticeRec(CCmdUI* pCmdUI);
  209. afx_msg void OnUpdatePrint(CCmdUI* pCmdUI);
  210. public:
  211. bool m_bEvent;
  212. bool m_bPrint;
  213. bool m_bUsers;
  214. bool m_bSysPare;
  215. bool m_bAnalog;
  216. bool m_bDeviceLog;
  217. bool m_bSystemLog;
  218. bool m_bNoticeRec;
  219. bool m_bEditPwd;
  220. void MyExpandTree(HTREEITEM hTreeItem);
  221. void GetCurPicVarToSArray( CString sPicPath );
  222. protected:
  223. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  224. PIC_VAR m_PIC_VAR[VIEW_MAX_NUM];
  225. bool GetPicIndexByPicPath( int &iIndex,CString sPicPath );
  226. bool GetPicPathByVarName( CString &sPicPath,CString sVarName );
  227. void InsertPicPathToStruct( int iIndex,CString sPicPath );
  228. bool VarIsExistInPic( int iIndex,CString sVarName,int &iInsertIndex );
  229. void GetVarFromGSAddToStruct( int iIndex,CString sGS );
  230. BOOL IsValidChar(char chr);
  231. void OnFullScreen() ;
  232. WINDOWPLACEMENT m_OldWndPlacement; //用来保存原窗口位置 
  233. BOOL m_FullScreen;//全屏显示标志
  234. CRect m_FullScreenRect; //表示全屏显示时的窗口位置
  235. CString m_sPath;
  236. int GetLevel( CString sContent );
  237. CString GetPreStr( CString sContent );
  238. CString GetLastStr( CString sContent );
  239. void InsertToCStringArray( CStringArray &SA,int iInsertIndex,CString sContent,CString sPath );
  240. void FileSearchCHN( CStringArray &SA,CStringArray &SATemp,int iInsertIndex, CString strPath, CString strFileName, int nLayer);
  241. void AddViewToTree( HTREEITEM hItem, CStringArray &SA );
  242. public:
  243. bool MakeFolderExist( CString DirectoryName );
  244. bool CreateDirectoryCHN( CString DirectoryName );
  245. bool ExistFolder( CString FilePath );
  246. void CopyDirectory( CString sScrPath,CString sDescPath );
  247. void GetPicPathByTree( HTREEITEM hItemSelect,CString &sPath );
  248. };