// MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "LYFZSendMsg.h" #include "resource.h" #include "MainFrm.h" #include "TakeFrom.h" #include "DesignFrom.h" #include "ChoosePhotoSkin.h" #include "SqlDlg.h" #include "MyAccount.h" #include "LogForm.h" #include #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //extern CMainCtrl g_tMainCtrl; extern int g_bDebug; #define IPC_CUSTOM_MSG2 _T("{a4Fa76E2-w78F-2aD5-q98A-Y0B0D078u2}") UINT g_wmClose = RegisterWindowMessage(IPC_CUSTOM_MSG2); #define WM_ICON_NOTIFY WM_USER+12 extern HWND g_hConnectWnd; CRect g_rc; CMainFrame *g_pMainWnd=NULL; HWND g_hSendWnd=NULL; extern CString newGUID(); BOOL g_bNeedCoon=1; BOOL g_bAutoRun=0; ///////////////////////////////////////////////////////////////////////////// // CMainFrame ///////////////////////////////////////////////////////////////////////////// float m_WidthScale; float m_HeightScale; BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) { CRect rtCtrl,rtWnd; if(hwnd) { ::GetWindowRect(hwnd,&rtCtrl); ::GetWindowRect(GetParent(hwnd),&rtWnd); rtCtrl.OffsetRect(-rtWnd.left,-rtWnd.top); float temp; temp= (float)rtCtrl.left*m_WidthScale; rtCtrl.left = (int)temp; temp= (float)rtCtrl.top*m_HeightScale; rtCtrl.top = (int)temp; temp = (float)rtCtrl.right*m_WidthScale; rtCtrl.right = (int)temp; temp =(float)rtCtrl.bottom*m_HeightScale; rtCtrl.bottom =(int)temp; ::MoveWindow(hwnd,rtCtrl.left,rtCtrl.top,rtCtrl.Width(),rtCtrl.Height(),TRUE); return TRUE; } else { return FALSE; } } IMPLEMENT_DYNCREATE(CMainFrame, CMDIFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_DESTROY() ON_WM_CLOSE() ON_WM_TIMER() ON_COMMAND(IDM_TODAY, OnToday) ON_COMMAND(IDM_DINDAN, OnDindan) ON_COMMAND(IDM_MSGREG, OnMsgreg) ON_COMMAND(IDM_EXIT, OnExit) ON_COMMAND(IDM_OPEN, OnOpen) ON_COMMAND(IDM_AUTORUN, OnAutorun) ON_COMMAND(IDM_CLIENTIP, OnClientip) ON_WM_NCLBUTTONDBLCLK() ON_WM_NCHITTEST() ON_COMMAND(IDM_LOG, OnLog) //}}AFX_MSG_MAP ON_MESSAGE(WM_ICON_NOTIFY, OnTrayNotification) ON_REGISTERED_MESSAGE(g_wmClose, OnAbortClose) END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; LRESULT CMainFrame::OnAbortClose(WPARAM wParam, LPARAM lParam) { return 1; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction #if defined(VC70) || defined(VC60) UINT CMainFrame::OnNcHitTest(CPoint point) { if (CWnd::OnNcHitTest(point) == HTRIGHT || CWnd::OnNcHitTest(point) == HTLEFT || CWnd::OnNcHitTest(point) == HTTOP || CWnd::OnNcHitTest(point) == HTBOTTOM) return HTCLIENT; return CWnd::OnNcHitTest(point); } #else LRESULT CMainFrame::OnNcHitTest(CPoint point) { if (CWnd::OnNcHitTest(point) == HTRIGHT || CWnd::OnNcHitTest(point) == HTLEFT || CWnd::OnNcHitTest(point) == HTTOP || CWnd::OnNcHitTest(point) == HTBOTTOM) return HTCLIENT; return CWnd::OnNcHitTest(point); } #endif void CMainFrame::OnNcLButtonDblClk(UINT nFlags, CPoint point) { if(nFlags != HTCAPTION) CMDIFrameWnd::OnNcLButtonDblClk(nFlags, point); } CMainFrame::CMainFrame() { // TODO: add member initialization code here m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); CString version = _T ("Version 1.0"); g_bAutoRun=AfxGetApp()->GetProfileInt (version, "brun", 0); } CMainFrame::~CMainFrame() { } void LoadImageFromFile(Bitmap **img, CString path) { try { if(!::PathFileExists (path))return; if(*img)delete *img; *img=NULL; BSTR bstr= path.AllocSysString(); *img= Bitmap::FromFile(bstr); SysFreeString(bstr); } catch(...) { } } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if(!m_wndClient.SubclassWindow (m_hWndMDIClient)) { return -1; } if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } m_wndToolBar.LoadTrueColorToolBar(90, IDB_NORMAL, 0, IDB_DISABLE); // second toolbar must have different ID // TODO: Delete these three lines if you don't want the toolbar to // be dockable ::GetWindowRect (this->m_hWndMDIClient, g_rc); g_pMainWnd=this; m_WidthScale = (float)g_rc.Width ()/722; m_HeightScale = (float)g_rc.Height ()/533; WriteLogin("启动成功"); m_TrayIcon.Create(this,WM_ICON_NOTIFY,"信息服务器" ,m_hIcon,IDR_MENUtray); //构造 OnClose(); // 隐藏窗口; // 运行线程,处理短信发送; ((CLYFZSendMsgApp*)AfxGetApp())->RunThread(); SetTimer (1, 10*60*1000, NULL); // OnTimer 打开其他程序; return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CMDIFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.style&=~WS_MAXIMIZEBOX; cs.style&=~WS_THICKFRAME; RECT rect; HWND hWnd = ::FindWindow("Shell_TrayWnd", 0); ::GetWindowRect(hWnd,&rect); cs.x=0; cs.y=0; cs.cx=GetSystemMetrics(SM_CXSCREEN); cs.cy=GetSystemMetrics(SM_CYSCREEN)-(rect.bottom -rect.top)+3; return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CMDIFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CMDIFrameWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMainFrame message handlers void CMainFrame::OnDestroy() { m_Mdi.DeleteAll(); CMDIFrameWnd::OnDestroy(); } void CMainFrame::OnClose() { // TODO: Add your message handler code here and/or call default ShowWindow(SW_HIDE); //隐藏窗口 } LRESULT CMainFrame::OnTrayNotification(WPARAM wParam,LPARAM lParam) { return m_TrayIcon.OnTrayNotification(wParam,lParam); } /////////////////////////////////////////////////////// //减少代码 #define OPEN_MENU(x) m_Mdi.Append(pName, RUNTIME_CLASS(x), IDR_MAINFRAME, this, nID) //减少代码 /////////////////////////////////////////////////////////////////////////////// DWORD CMainFrame::GetConnectionID() { return m_dwConnectionID; } void CMainFrame::SetConnectionID(DWORD dwConnection) { m_dwConnectionID = dwConnection; } void CMainFrame::ProcessChatMessageRequest2(BYTE code) { } void CMainFrame::ProcessChatMessageRequest2(CString sql) { } void CMainFrame::ProcessChatMessageRequest2(BYTE *pData, int length) { } BOOL CMainFrame::ProcessChatMessageRequest(void *szDataBuf, int nDataLen) { return 1; } //ACEESS+TCPIP实现网络版 BOOL CMainFrame::OnConnect() { return 1; } void CMainFrame::ProcessNetEvent(int nEventType, void *pRecvMsg, DWORD dwDataLen) { /////// } void CMainFrame::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent==1 && g_bDebug==0) { ShellExecute(NULL, _T("open"), g_mainpath+"\\AutoRun2.exe", NULL, NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\AutoRun3.exe", NULL, NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZReceiveMsg.exe", "0", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZReceiveMsg.exe", "1", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZReceiveMsg.exe", "2", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZReceiveMsg.exe", "3", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZReceiveMsg.exe", "4", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZReceiveMsg.exe", "5", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZReceiveMsg.exe", "6", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZIPReceive.exe", "0", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZIPReceive.exe", "1", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZIPReceive.exe", "2", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZIPReceive.exe", "3", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZIPReceive.exe", "4", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZIPReceive.exe", "5", NULL, SW_SHOWNORMAL); ShellExecute(NULL, _T("open"), g_mainpath+"\\LYFZIPReceive.exe", "6", NULL, SW_SHOWNORMAL); } } void CMainFrame::ProcessLoginResponse(void *pLoginResult) { } BOOL CMainFrame::ProcessLoginRequest() { return 1; } void CMainFrame::OnOutbarNotify(CString strMsg) { } void CMainFrame::AutoUpdate() { } BOOL g_bInSkin=0; BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(pMsg->message==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_F3: ChangePsw(); break; } } return CMDIFrameWnd::PreTranslateMessage(pMsg); } void CMainFrame::GetSkin() { } void CMainFrame::PrintDinDan(CString m_id) { } void CMainFrame::SetSelFolder(int pos) { } void CMainFrame::ToPhotoPrint() { } void CMainFrame::GetOcx() { } CArrayg_List1array; DWORD g_nLeng=0; BYTE *g_pData=NULL; void CMainFrame::ProcessChatMessageResponse(void *pResponse) { } void CMainFrame::AddHistoryMenu(CArray*hisyeararray) { } void CMainFrame::OnHistory(UINT nID) { } void CMainFrame::PrintDinDan2(CString m_id) { } void CMainFrame::OnToday() { // TODO: Add your command handler code here // TODO: Add your command handler code here UINT nID=1; LPSTR pName ; pName = (LPSTR)(LPCSTR)"客户资料"; OPEN_MENU(TakeFrom); } void CMainFrame::OnDindan() { UINT nID=1; LPSTR pName ; pName = (LPSTR)(LPCSTR)"我的账户"; OPEN_MENU(MyAccount); } void CMainFrame::ChangePsw() { } void CMainFrame::OnMsgreg() { // TODO: Add your command handler code here UINT nID=1; LPSTR pName ; pName = (LPSTR)(LPCSTR)"发送记录"; OPEN_MENU(DesignFrom); } extern DWORD FindAppProcessID(CString path); void CMainFrame::OnExit() { // TODO: Add your command handler code here ((CLYFZSendMsgApp*)AfxGetApp())->TerminateThread(); m_TrayIcon.RemoveIcon(); if(m_Mdi.MainClose()) CMDIFrameWnd::OnClose(); // exit(-1); } void CMainFrame::OnOpen() { // TODO: Add your command handler code here ShowWindow(SW_SHOW); } void CMainFrame::OnAutorun() { // TODO: Add your command handler code here g_bAutoRun=!g_bAutoRun; CString version = _T ("Version 1.0"); AfxGetApp()->WriteProfileInt (version, "brun", g_bAutoRun); TCHAR szKey[MAX_PATH]; HKEY hKey=0; DWORD disp=0; lstrcpy(szKey,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); if(g_bAutoRun) { int lResult=RegCreateKeyEx(HKEY_LOCAL_MACHINE,szKey,0,NULL,REG_OPTION_VOLATILE, KEY_ALL_ACCESS,NULL,&hKey,&disp); if(lResult==ERROR_SUCCESS) { TCHAR szDir[MAX_PATH]; ::GetModuleFileName (NULL, szDir, MAX_PATH); lResult=RegSetValueEx(hKey,"YLGLMSGMANAGE",0,REG_SZ,(const unsigned char*)szDir,lstrlen(szDir)); RegCloseKey(hKey); } } else { int lResult=RegCreateKeyEx(HKEY_LOCAL_MACHINE,szKey,0,NULL,REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,NULL,&hKey,&disp); if(lResult==ERROR_SUCCESS) { RegDeleteValue(hKey,"YLGLMSGMANAGE"); RegDeleteKey (hKey,"YLGLMSGMANAGE"); RegCloseKey(hKey); } } } void CMainFrame::OnExit2() { } void CMainFrame::OnClientip() { // TODO: Add your command handler code here UINT nID=1; LPSTR pName ; pName = (LPSTR)(LPCSTR)"域名管理"; } void CMainFrame::OnLog() { // TODO: Add your command handler code here UINT nID=1; LPSTR pName ; pName = (LPSTR)(LPCSTR)"系统日志"; OPEN_MENU(LogFrom); }