// MainFrm.h : interface of the CMainFrame class // ///////////////////////////////////////////////////////////////////////////// #if !defined(AFX_MAINFRM_H__2486F51E_8985_401E_AB91_D618397AED05__INCLUDED_) #define AFX_MAINFRM_H__2486F51E_8985_401E_AB91_D618397AED05__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "BCMenu.h" #include "TrueColorToolBar.h" #include "MyToolBar.h" #include "MyMdi.H" #include "ClientTunnel.h" #include "ClientWnd.h" #include "MainFrimDlg2.h" #include "PrintRX.h" class CMainFrame : public CMDIFrameWnd { HICON m_hIcon; protected: // create from serialization only DECLARE_DYNCREATE(CMainFrame) MainFrimDlg2 *m_pMainFrimDlg2; // BCMenu m_menuXP; // 菜单 /* 以下两类,都是继承CTooBar */ CTrueColorToolBar m_wndToolBar; // MyToolBar m_wndToolBar2; // public: BOOL m_bCheckF2F3; CMainFrame(); CMyMdi m_Mdi; // CStatusBar m_wndStatusBar; // 状态栏 CClientWnd m_wndClient; // 客户显示区域 CClientTunnel m_tClientTunnel; // 通信对象 DWORD m_dwConnectionID; // 通信连接id // Overrides public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); virtual BOOL PreTranslateMessage(MSG* pMsg); //}}AFX_VIRTUAL // Implementation public: HMENU NewMenu(); virtual ~CMainFrame(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif // Generated message map functions protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnDestroy(); afx_msg void OnClose(); afx_msg void OnTimer(UINT nIDEvent); afx_msg void Onchoosephotoskin(); afx_msg void OnPath(); afx_msg void OnServer(); afx_msg void OnShowhis(); afx_msg void OnStaffAchievementShow(); afx_msg void OnAutodelphoto(); afx_msg void Onphotomanage(); afx_msg void OnCompanyinfo(); afx_msg void OnHelpfile(); afx_msg void OnPhotobak(); afx_msg void OnTaoxifg(); afx_msg void OnShowBakState(); afx_msg void OnLog(); //}}AFX_MSG afx_msg UINT OnNcHitTest(CPoint point); afx_msg void OnNcLButtonDblClk(UINT nFlags, CPoint point); DECLARE_MESSAGE_MAP() public: void ShowMonthForm2(); BOOL OnConnectLYFZ(); void PrintHireDress2(); void PrintHireDress(CString no); void PrintHireDress_01(CString strOrderNumber); // Jeff add.2014.09.02 void PrintThumbNail(CStringArray *array, CString client, BOOL bDir, CString m_size); void PrintDailyForm(CArray*Listarray, CString title, CString info); void PrintLoginForm(CArray*Listarray, CString title, CString info); void PrintTakeForm(CArray*Listarray); void PrintTakeForm1(CArray*Listarray); void PrintTakeForm2(CArray*Listarray); void PrintTakeForm3(CArray*Listarray); void PrintTakeForm4(CArray*Listarray); void PrintTakeForm5(CArray*Listarray); void PrintDinDan(CString strOrderNumber); void PrintDinDan2(CString strOrderNumber); void PrintDinDan3(CString strOrderNumber); void PrintDinDan4(CString strOrderNumber); void PrintDinDan5(CString strOrderNumber); void PrintDinDan6(CString strOrderNumber); void PrintFlowChart2(CString strOrderNumber); void PrintFlowChart3(CString strOrderNumber); void PrintFlowChart4(CString strOrderNumber); void PrintReceipt2(CString strOrderNumber); void PrintFlowChart(CString strOrderNumber); void PrintFlowChart3LKAY(CString strOrderNumber); void PrintReceipt(CStringArray *pArray); void PrintReceipt_01(CStringArray *pArray); // Jeff添加支付方式 void PrintReceipt_02(CStringArray *pArray,CPrintRX *pPrinter = NULL,const int &nCount = 1,const BOOL bPrintImmediately = FALSE); // Jeff添加支付方式 void PrintReceipt2(CStringArray *pArray); void PrintReceipt3(CString strOrderNumber, CStringArray *pArray, float money); // 打印收据 CString GetDanWei(CString name, CArray*array); BOOL IsCtrlDown(); BOOL IsShiftDown(); void LinkClick(CString str, int nParent); void ResetTimer(); void NewMenu2(); void OnCommandMenu(UINT nID); //响应菜单命令 void OnClose2(); void OnHistory(UINT nID); void OnBranchData(UINT nID); void OnBranchData2(UINT nID); void AddHistoryMenu(CArray*hisyeararray); void AddBranchMenu(CArray*branchArray); void GetOcx(); void ToPhotoPrint(); // void SetSelFolder(int pos); void GetSkin(); void AutoUpdate(); void OnOutbarNotify(CString str); /*********************************************************************/ void ProcessChatMessageRequest2(BYTE code); void ProcessChatMessageRequest2(CString sql); void ProcessChatMessageRequest2(BYTE *pData, int length); void InsideMsg(); int GetPort(); // Jeff:以下6个连接,每个连接的服务器都不一样; BOOL OnConnect(); BOOL OnConnectIP(); BOOL OnConnectBranch(); BOOL OnConnectBranch2(); BOOL OnConnect2(); BOOL OnConnect3(); // .断开与服务器的连接,并设置连接id为INVALID_SOCKET; void OnDisconnect(); // .获取当前客户端与服务端的连接id; DWORD GetConnectionID(); // .当连接服务器成功后,服务器返回当前与客户端连接的SOCKET值,用该值设置为连接id; void SetConnectionID(DWORD dwConnection); // .用户登陆服务器请求; BOOL ProcessLoginRequest(); // .用户登陆服务请求,服务器的响应返回; void ProcessLoginResponse(void *pLoginResult); // .客户端登陆后,聊天数据请求; BOOL ProcessChatMessageRequest(void *szDataBuf, int nDataLen); // .客户端登陆后,聊天数据请求,服务端的响应返回; void ProcessChatMessageResponse(void *pResponse); // .客户端的网络事件接收处理; void ProcessNetEvent(int nEventType, void *pRecvMsg, DWORD dwDataLen); }; #endif // !defined(AFX_MAINFRM_H__2486F51E_8985_401E_AB91_D618397AED05__INCLUDED_) /************************************************************************/ /* ////////////////////////////////////////////////////////////////////////// 客户端通信对象: CClientTunnel m_tClientTunnel 第一步,调用以下连接服务器函数; BOOL OnConnect(); BOOL OnConnectIP(); BOOL OnConnectBranch(); BOOL OnConnectBranch2(); BOOL OnConnect2(); BOOL OnConnect3(); 第二步,登录服务器,事件处理,响应返回; BOOL ProcessLoginRequest(); void ProcessNetEvent(int nEventType, void *pRecvMsg, DWORD dwDataLen); void ProcessLoginResponse(void *pLoginResult); 第三步; BOOL ProcessChatMessageRequest(void *szDataBuf, int nDataLen); void ProcessNetEvent(int nEventType, void *pRecvMsg, DWORD dwDataLen); void ProcessChatMessageResponse(void *pResponse); 第四步,处理完毕,断开连接; void OnDisconnect(); ////////////////////////////////////////////////////////////////////////// 1.CMainFrame::OnCreate() 中调用 SetTimer(1,NULL,10);来登录服务器; 2.CMainFrame::OnTimer()中, 执行welcome dlg, 且此时g_bNoLoginLia 为 0(skin文件夹里有5.lia则为0,否则为1),则执行Login3 dlg; 3.welcome::OnTimer()中,正常情况下g_bGenBranchData为0,则g_nSendCode被设置为211; 注:g_nSendCode在服务端名称是dwToUserID. g_nSendCode=211: 更新 \服务端\skin\ 文件夹下的大小变更的文件到客户端去; g_nSendCode=21: 也是更新,处理方式不一样; 4.welcome::OnTimer()里调用了CMainFrame::ProcessChatMessageRequest2,ProcessChatMessageRequest2再调用SendDataDlg dlg; 5.SendDataDlg::OnTimer里调用CConnectDlg dlg 进行连接服务器和登陆服务器的动作; 6.CConnectDlg::OnTimer里调用CMainFrame::OnConnect(); 7.CMainFrame::OnConnect(),里连接了服务器,然后调用CMainFrame::ProcessLoginRequest()登录服务器; 8.最后CMainFrame::ProcessChatMessageRequest2里启动SetTimer(2,g_ntimeout,NULL)来断开连接; */ /************************************************************************/