MainFrm.h 6.3 KB

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