MainFrm.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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. #define WM_MY_NEW_ALERT WM_USER + 102
  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. CDockPageBar m_wndDockPageBar1;
  39. CTreeCtrl m_wndTree;
  40. WINDOWPLACEMENT m_wpPrev;
  41. CRect m_FullScreenWindowRect;
  42. CMenu m_OrgMenu;
  43. CRect m_mainRect;
  44. CStatusBar m_wndStatusBar;
  45. ////////////////////////////////////
  46. // 子窗体
  47. CChildFrame *m_pViewIDE[MAX_VIEW_NUM];
  48. CFormView *m_pActiveView;
  49. int m_nViewCount;
  50. CIDEDoc *m_pDoc;
  51. CDlgDevice m_wndDevice;
  52. CDlgComport m_wndComport;
  53. HTREEITEM m_hSerialGroup[MAX_SERIAL_NUM]; //串口组
  54. HTREEITEM m_hSerialDev[MAX_SERIAL_NUM][MAX_DEVICE_NUM]; //串口设备
  55. HTREEITEM m_hNetworkDev[MAX_NETWORK_NUM]; //以太网设备
  56. HANDLE m_hViewPollThread;
  57. CRealEventDlg* m_dlgEvent;
  58. protected: // 控件条嵌入成员
  59. CToolBar m_wndToolBar;
  60. CToolBar m_wndDrawToolBar;
  61. CToolBar m_wndDrawAlignBar;
  62. COOBmpToolBar m_wndRunToolBar;
  63. bool m_bHideLeft;
  64. CDlgBmp* m_dlgControl;
  65. CImageList m_wndImageList;
  66. private:
  67. HTREEITEM m_hMonitor; //监控站
  68. HTREEITEM m_hIOGroup; //IO
  69. HTREEITEM m_hScript; //脚本设置
  70. HTREEITEM m_hVariant; //数据字典
  71. HTREEITEM m_hSerial; //232设置
  72. HTREEITEM m_hEtherNet; //以太网设置
  73. HTREEITEM m_hAnalog; //变量
  74. HTREEITEM m_hSystem; //系统参数
  75. HTREEITEM m_hCurrent; //当前所选
  76. CPoint m_mousePoint;
  77. HTREEITEM m_hScriptGroup[MAX_SCRIPT_NUM]; //脚本
  78. int m_nPortNum, m_nDeviceNum; //串口数和设备数
  79. int m_nScripts;
  80. // 操作
  81. public:
  82. static DWORD WINAPI ViewPollThread( void *pData );
  83. void OnEditCommond();
  84. void ManageHisData();
  85. void LoadEventPara();
  86. void StoreEventPara();
  87. void SetEventPara();
  88. void StoreRunPara(BOOL bStartRun);
  89. void HideRunBar();
  90. void AddIDEView(CString strDesc, CString strPath);
  91. int GetIDEViewIndex(CString strPath);
  92. void AddDevice();
  93. void DeleteDev(int nIsHint);
  94. void InitTreeInfo(void);
  95. int FinishedAddDevice(int nIsDelete, CString strUid);
  96. private:
  97. BOOL InstallIcons();
  98. void FileSearch(HTREEITEM hItem, CString strPath, CString strFileName, int nLayer);
  99. BOOL DirSearch(CString strPath, CString strFileName);
  100. BOOL FindTreeItem(HTREEITEM hSrcItem, HTREEITEM hDestItem);
  101. void OnRun();
  102. int GetIDEViewFreeIndex(CString strPath);
  103. bool ShowView(void);
  104. void DeleteDirectory(CString strDir);
  105. void LoadRunPara();
  106. void SetRunPara();
  107. int GetNetworkChannelIndex();
  108. int GetFreeSerialTreeItem();
  109. int GetFreeNetworkTreeItem();
  110. int GetIndexSerialTreeItem(CString strSrc);
  111. int GetIndexNetworkTreeItem(CString strSrc);
  112. int ShowDevProperty(HTREEITEM hSelectedItem);
  113. void ShowCaptionMenu(BOOL bShow);
  114. // 重写
  115. public:
  116. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  117. // 实现
  118. public:
  119. virtual ~CMainFrame();
  120. #ifdef _DEBUG
  121. virtual void AssertValid() const;
  122. virtual void Dump(CDumpContext& dc) const;
  123. #endif
  124. // 生成的消息映射函数
  125. protected:
  126. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  127. #if USE_TRAYICON
  128. afx_msg LRESULT OnTrayNotification(WPARAM wp, LPARAM lp);
  129. afx_msg LRESULT OnTaskBarCreated(WPARAM wp, LPARAM lp);
  130. #endif
  131. DECLARE_MESSAGE_MAP()
  132. public:
  133. afx_msg void OnClose();
  134. afx_msg void OnSuperEnd();
  135. afx_msg void OnTrayOpen();
  136. protected:
  137. virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
  138. public:
  139. afx_msg void OnAdddevoce();
  140. afx_msg void OnUpdateAdddevoce(CCmdUI *pCmdUI);
  141. afx_msg void OnDeleteport();
  142. afx_msg void OnUpdateDeleteport(CCmdUI *pCmdUI);
  143. afx_msg void OnAddPort();
  144. afx_msg void OnUpdateAddPort(CCmdUI *pCmdUI);
  145. afx_msg void OnAddScript();
  146. afx_msg void OnUpdateAddScript(CCmdUI *pCmdUI);
  147. afx_msg void OnAddview();
  148. afx_msg void OnUpdateAddview(CCmdUI *pCmdUI);
  149. afx_msg void OnAddview2();
  150. afx_msg void OnUpdateAddview2(CCmdUI *pCmdUI);
  151. afx_msg void OnDeletedevice();
  152. afx_msg void OnUpdateDeletedevice(CCmdUI *pCmdUI);
  153. afx_msg void OnDeleteview();
  154. afx_msg void OnUpdateDeleteview(CCmdUI *pCmdUI);
  155. afx_msg void OnDeletescript();
  156. afx_msg void OnUpdateDeletescript(CCmdUI *pCmdUI);
  157. afx_msg void OnSetscript();
  158. afx_msg void OnUpdateSetscript(CCmdUI *pCmdUI);
  159. afx_msg void OnEditscript();
  160. afx_msg void OnUpdateEditscript(CCmdUI *pCmdUI);
  161. afx_msg void OnDestroy();
  162. afx_msg void OnUsers();
  163. afx_msg void OnUpdateUsers(CCmdUI* pCmdUI);
  164. afx_msg void OnEditPwdTool();
  165. afx_msg void OnUpdateEditPwd(CCmdUI* pCmdUI);
  166. afx_msg void OnSysPara();
  167. afx_msg void OnUpdateSysPare(CCmdUI* pCmdUI);
  168. afx_msg void OnEventmanage();
  169. afx_msg void OnEvent();
  170. afx_msg void OnUpdateEvent(CCmdUI* pCmdUI);
  171. afx_msg void OnSummaryLog();
  172. afx_msg void OnUpdateSummaryLog(CCmdUI* pCmdUI);
  173. afx_msg void OnControldialog();
  174. afx_msg void OnTimer(UINT nIDEvent);
  175. afx_msg void OnUserManager();
  176. afx_msg void OnEditPwd();
  177. afx_msg void OnSingleAnalog();
  178. afx_msg void OnUpdateSingleAnalog(CCmdUI* pCmdUI);
  179. afx_msg void OnGroupManager();
  180. afx_msg void OnSystemLog();
  181. afx_msg void OnUpdateSystemLog(CCmdUI* pCmdUI);
  182. afx_msg void OnNoticeRec();
  183. afx_msg void OnUpdateNoticeRec(CCmdUI* pCmdUI);
  184. afx_msg void OnUpdatePrint(CCmdUI* pCmdUI);
  185. public:
  186. bool m_bEvent;
  187. bool m_bPrint;
  188. bool m_bUsers;
  189. bool m_bSysPare;
  190. bool m_bAnalog;
  191. bool m_bDeviceLog;
  192. bool m_bSystemLog;
  193. bool m_bNoticeRec;
  194. bool m_bEditPwd;
  195. void MyExpandTree(HTREEITEM hTreeItem);
  196. void GetCurPicVarToSArray( CString sPicPath );
  197. protected:
  198. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  199. PIC_VAR m_PIC_VAR[100];
  200. bool GetPicIndexByPicPath( int &iIndex,CString sPicPath );
  201. bool GetPicPathByVarName( CString &sPicPath,CString sVarName );
  202. void InsertPicPathToStruct( int iIndex,CString sPicPath );
  203. bool VarIsExistInPic( int iIndex,CString sVarName,int &iInsertIndex );
  204. void GetVarFromGSAddToStruct( int iIndex,CString sGS );
  205. BOOL IsValidChar(char chr);
  206. void OnFullScreen() ;
  207. WINDOWPLACEMENT m_OldWndPlacement; //用来保存原窗口位置 
  208. BOOL m_FullScreen;//全屏显示标志
  209. CRect m_FullScreenRect; //表示全屏显示时的窗口位置
  210. public:
  211. afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
  212. };