www.gusucode.com > 网络神偷软件VC++源码,远程电脑管理-源码程序 > 网络神偷软件VC++源码,远程电脑管理-源码程序\code\MainFrm.cpp
//Download by http://www.NewXing.com // MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "Nethief.h" #include "NethiefDoc.h" #include "MainFrm.h" #include "TipOfTheDayDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_TIMER() ON_WM_CLOSE() ON_COMMAND(ID_HELP_TIPOFTHEDAY, OnHelpTipoftheday) ON_COMMAND(ID_TOOLBAR_FILEMANAGER, OnToolbarFilemanager) ON_COMMAND(ID_TOOLBAR_COMMUNITY, OnToolbarCommunity) ON_COMMAND(ID_TOOLBAR_VIEW, OnToolbarView) ON_COMMAND(ID_TOOLBAR_REFRESH, OnToolbarRefresh) ON_COMMAND(ID_TOOLBAR_PASTE, OnToolbarPaste) ON_COMMAND(ID_TOOLBAR_NEWFOLDER, OnToolbarNewfolder) ON_COMMAND(ID_TOOLBAR_FINDFILE, OnToolbarFindfile) ON_COMMAND(ID_TOOLBAR_DELETE, OnToolbarDelete) ON_COMMAND(ID_TOOLBAR_CUT, OnToolbarCut) ON_COMMAND(ID_TOOLBAR_COPY, OnToolbarCopy) ON_COMMAND(ID_TOOLBAR_BACK, OnToolbarBack) ON_COMMAND(ID_TOOLBAR_NEWFILE, OnToolbarNewfile) ON_COMMAND(ID_TOOLBAR_RUN, OnToolbarRun) ON_COMMAND(ID_MENU_FILE_RUN, OnMenuFileRun) ON_COMMAND(ID_MENU_FILE_RENAME, OnMenuFileRename) ON_COMMAND(ID_MENU_CONSOLE_TAB, OnMenuConsoleTab) ON_UPDATE_COMMAND_UI(ID_INDICATOR_PROGRESS,OnUpdateIndicatorProgress) ON_COMMAND(ID_TOOLBAR_SELECTALL, OnToolbarSelectall) ON_COMMAND(ID_TOOLBAR_REVERSESELECT, OnToolbarReverseselect) ON_WM_SIZE() ON_MESSAGE(WM_SYSTRAY,OnSystray) ON_COMMAND(ID_SYSTRAYMENU_WINDOW, OnSystraymenuWindow) ON_MESSAGE(WM_HOTKEY,OnHotKey) ON_COMMAND(ID_MENU_CONSOLE_LOGON, OnMenuConsoleLogon) ON_UPDATE_COMMAND_UI(ID_SYSTRAYMENU_HIDE, OnUpdateSystraymenuHide) ON_COMMAND(ID_SYSTRAYMENU_HIDE, OnSystraymenuHide) ON_COMMAND(ID_TOOLBAR_DELETEHOST, OnToolbarDeletehost) ON_COMMAND(ID_TOOLBAR_BUILDSERVER, OnToolbarBuildserver) ON_COMMAND(ID_HELP_README, OnHelpReadme) ON_COMMAND(ID_HELP_HOMEPAGE, OnHelpHomepage) ON_COMMAND(ID_HELP_EMAIL, OnHelpEmail) ON_COMMAND(ID_HELP_UPDATE, OnHelpUpdate) ON_COMMAND(ID_TOOLBAR_DISCONNECT, OnToolbarDisconnect) ON_COMMAND(ID_TOOLBAR_STOP, OnToolbarStop) ON_COMMAND(ID_MENU_NET_OPTION, OnMenuNetOption) ON_WM_SETCURSOR() ON_MESSAGE(WM_WORKTHREAD,OnWorkThread) ON_MESSAGE(WM_SOCKET,OnSocket) ON_COMMAND(ID_TOOLBAR_PROPERTY, OnToolbarProperty) ON_COMMAND(ID_MENU_NET_UNINSTALL, OnMenuNetUninstall) ON_COMMAND(ID_MENU_NET_NOTE, OnMenuNetNote) ON_COMMAND(ID_MENU_NET_DOWNLOAD, OnMenuNetDownload) //}}AFX_MSG_MAP END_MESSAGE_MAP() static UINT indicators[] = { ID_INDICATOR_OFFLINE, ID_INDICATOR_BUSY, ID_INDICATOR_PROGRESS, ID_SEPARATOR // status line indicator }; ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction CMainFrame::CMainFrame() { // TODO: add member initialization code here m_nStartup=0; m_hCursor=::LoadCursor(NULL,IDC_APPSTARTING); } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { //////////////////从INI中读出一些设置//////////////////////////// m_bIsFileManager=GetINIfileInt("Main Window Placement","IsFileManager");//得到窗口状态 m_cxOldColumnPos1=GetINIfileInt("Main Window Placement","SplitterBarPos");//分割栏初始化位置 m_cxOldColumnPos2=0; m_bIsHideIcon=GetINIfileInt("Main Window Placement","IsHideIcon"); ///////////////////////////////////////////////////////////////// if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; m_pTreeView=(CMyTreeView*)m_wndSplitter.GetPane(0,0); m_pListView=(CMyListView*)m_wndSplitter.GetPane(0,1); m_pFormView=(CMyFormView*)m_wndSplitter.GetPane(0,2); //状态栏//////////////////////////////////////// if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } m_wndStatusBar.SetPaneInfo( m_wndStatusBar.CommandToIndex(ID_INDICATOR_OFFLINE), ID_INDICATOR_OFFLINE,SBPS_NORMAL|SBPS_DISABLED,14); m_wndStatusBar.SetPaneInfo( m_wndStatusBar.CommandToIndex(ID_INDICATOR_BUSY), ID_INDICATOR_BUSY,SBPS_NORMAL|SBPS_DISABLED,14); m_wndStatusBar.SetPaneInfo( m_wndStatusBar.CommandToIndex(ID_INDICATOR_PROGRESS), ID_INDICATOR_PROGRESS,SBPS_NORMAL|SBPS_DISABLED,191); m_wndStatusBar.SetPaneStyle(m_wndStatusBar.CommandToIndex(ID_SEPARATOR), SBPS_STRETCH); //网络操作工具栏/////////////////////////////////////////////////////////////// if(!m_wndNetToolBar.Create(this)|| !m_wndNetToolBar.LoadToolBar(IDR_NETTOOLBAR)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } m_wndNetToolBar.SetWindowText("网络"); m_wndNetToolBar.SetBarStyle(m_wndNetToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_wndNetToolBar.ModifyStyle(0,TBSTYLE_FLAT); //设置工具栏为平面格式 m_wndNetToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); ////////////////////////////////////////////// CBitmap NetToolBarBitmap; NetToolBarBitmap.LoadBitmap(IDB_NETTOOLBAR); m_NetToolBarImageList.Create(32,32,ILC_COLOR32|ILC_MASK,4,1); m_NetToolBarImageList.Add(&NetToolBarBitmap,RGB(255,0,255)); m_wndNetToolBar.GetToolBarCtrl().SetImageList(&m_NetToolBarImageList); CBitmap NetToolBarHotBitmap; NetToolBarHotBitmap.LoadBitmap(IDB_NETTOOLBAR_HOT); m_NetToolBarHotImageList.Create(32,32,ILC_COLOR32|ILC_MASK,4,1); m_NetToolBarHotImageList.Add(&NetToolBarHotBitmap,RGB(255,0,255)); m_wndNetToolBar.GetToolBarCtrl().SetHotImageList(&m_NetToolBarHotImageList); ////////////////////////////////////////////// CRect rect;//设置窗口正常显示时的位置 rect.left=GetINIfileInt("Main Window Placement","NetToolBar.left"); rect.top=GetINIfileInt("Main Window Placement","NetToolBar.top"); rect.right=GetINIfileInt("Main Window Placement","NetToolBar.right"); rect.bottom=GetINIfileInt("Main Window Placement","NetToolBar.bottom"); ClientToScreen(&rect); DockControlBar(&m_wndNetToolBar,(UINT)0,&rect); //控制台工具栏/////////////////////////////////////////////////////////////////// if(!m_wndConsoleToolBar.Create(this)|| !m_wndConsoleToolBar.LoadToolBar(IDR_CONSOLETOOLBAR)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } m_wndConsoleToolBar.SetWindowText("主控"); m_wndConsoleToolBar.SetBarStyle(m_wndConsoleToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_wndConsoleToolBar.ModifyStyle(0,TBSTYLE_FLAT); //设置工具栏为平面格式 ////////////////////////////////////////////// m_pWndConsoleToolBarCtrl=&m_wndConsoleToolBar.GetToolBarCtrl(); CBitmap ConsoleToolBarBitmap; ConsoleToolBarBitmap.LoadBitmap(IDB_CONSOLETOOLBAR); m_ConsoleToolBarImageList.Create(32,32,ILC_COLOR32|ILC_MASK,2,1); m_ConsoleToolBarImageList.Add(&ConsoleToolBarBitmap,RGB(255,0,255)); m_pWndConsoleToolBarCtrl->SetImageList(&m_ConsoleToolBarImageList); CBitmap ConsoleToolBarHotBitmap; ConsoleToolBarHotBitmap.LoadBitmap(IDB_CONSOLETOOLBAR_HOT); m_ConsoleToolBarHotImageList.Create(32,32,ILC_COLOR32|ILC_MASK,2,1); m_ConsoleToolBarHotImageList.Add(&ConsoleToolBarHotBitmap,RGB(255,0,255)); m_pWndConsoleToolBarCtrl->SetHotImageList(&m_ConsoleToolBarHotImageList); ////////////////////////////////////////////// m_wndConsoleToolBar.SetButtonStyle(0,TBBS_CHECKBOX|TBBS_GROUP); m_wndConsoleToolBar.SetButtonStyle(1,TBBS_CHECKBOX|TBBS_GROUP); m_wndConsoleToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); ////////////////////////////////////////////////////////////// rect.left=GetINIfileInt("Main Window Placement","ConsoleToolBar.left"); rect.top=GetINIfileInt("Main Window Placement","ConsoleToolBar.top"); rect.right=GetINIfileInt("Main Window Placement","ConsoleToolBar.right"); rect.bottom=GetINIfileInt("Main Window Placement","ConsoleToolBar.bottom"); ClientToScreen(&rect); DockControlBar(&m_wndConsoleToolBar,(UINT)0,&rect); if(m_bIsFileManager) { SetActivePane(0,0);//设置活动视为TreeView m_pWndConsoleToolBarCtrl->CheckButton(ID_TOOLBAR_FILEMANAGER,TRUE); CMenu *pMenu=GetMenu()->GetSubMenu(0); pMenu->CheckMenuRadioItem(0,1,0,MF_BYPOSITION); } else { SetActivePane(0,2);//设置活动视为FormView m_pWndConsoleToolBarCtrl->CheckButton(ID_TOOLBAR_COMMUNITY,TRUE); CMenu *pMenu=GetMenu()->GetSubMenu(0); pMenu->CheckMenuRadioItem(0,1,1,MF_BYPOSITION); /////////////////////////////////////////////////// m_wndSplitter.SetColumnInfo(0,0,0); m_wndSplitter.SetColumnInfo(1,0,0); m_wndSplitter.RecalcLayout(); } //文件操作工具栏//////////////////////////////////////////////////////////////// if(!m_wndFileToolBar.Create(this)|| !m_wndFileToolBar.LoadToolBar(IDR_FILETOOLBAR)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } m_wndFileToolBar.SetWindowText("文件"); m_wndFileToolBar.SetBarStyle(m_wndFileToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_wndFileToolBar.ModifyStyle(0,TBSTYLE_FLAT); //设置工具栏为平面格式 ////////////////////////////////////////////// CBitmap FileToolBarBitmap; FileToolBarBitmap.LoadBitmap(IDB_FILETOOLBAR); m_FileToolBarImageList.Create(32,32,ILC_COLOR32|ILC_MASK,12,1); m_FileToolBarImageList.Add(&FileToolBarBitmap,RGB(255,0,255)); m_wndFileToolBar.GetToolBarCtrl().SetImageList(&m_FileToolBarImageList); CBitmap FileToolBarHotBitmap; FileToolBarHotBitmap.LoadBitmap(IDB_FILETOOLBAR_HOT); m_FileToolBarHotImageList.Create(32,32,ILC_COLOR32|ILC_MASK,12,1); m_FileToolBarHotImageList.Add(&FileToolBarHotBitmap,RGB(255,0,255)); m_wndFileToolBar.GetToolBarCtrl().SetHotImageList(&m_FileToolBarHotImageList); ////////////////////////////////////////////// m_wndFileToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); rect.left=GetINIfileInt("Main Window Placement","FileToolBar.left"); rect.top=GetINIfileInt("Main Window Placement","FileToolBar.top"); rect.right=GetINIfileInt("Main Window Placement","FileToolBar.right"); rect.bottom=GetINIfileInt("Main Window Placement","FileToolBar.bottom"); ClientToScreen(&rect); DockControlBar(&m_wndFileToolBar,(UINT)0,&rect); ////////////////////////////////////////////////////////////////// RegisterHotKey(m_hWnd,0,MOD_ALT,0xC0);//Alt+` ////////////////////////////////////////////////////////////////// m_pDoc=(CNethiefDoc*)GetActiveDocument(); m_pDoc->OnInitial(); return 0; } BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext) { m_wndSplitter.CreateStatic(this,1,3);//水平分割三个窗口 m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CMyTreeView), CSize(m_cxOldColumnPos1,0),pContext); m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMyListView), CSize(m_cxOldColumnPos2,0),pContext); m_wndSplitter.CreateView(0,2,RUNTIME_CLASS(CMyFormView), CSize(0,0),pContext); return TRUE; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.style&=~FWS_ADDTOTITLE; CNethiefApp* app=(CNethiefApp*)AfxGetApp(); cs.lpszName=app->m_strVersion; return CFrameWnd::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMainFrame message handlers void CMainFrame::OnMenuConsoleTab() { // TODO: Add your command handler code here if(m_bIsFileManager) { OnToolbarCommunity(); } else { OnToolbarFilemanager(); } } void CMainFrame::OnToolbarFilemanager() { // TODO: Add your command handler code here if(m_bIsFileManager) return; m_pWndConsoleToolBarCtrl->CheckButton(ID_TOOLBAR_FILEMANAGER,TRUE); CMenu *pMenu=GetMenu()->GetSubMenu(0); pMenu->CheckMenuRadioItem(0,1,0,MF_BYPOSITION); m_bIsFileManager=TRUE; m_wndSplitter.SetColumnInfo(0,m_cxOldColumnPos1,0); m_wndSplitter.SetColumnInfo(1,m_cxOldColumnPos2,0); m_wndSplitter.RecalcLayout(); SetActivePane(0,0);//设置活动视为TreeView } void CMainFrame::OnToolbarCommunity() { // TODO: Add your command handler code here if(!m_bIsFileManager) return; m_pWndConsoleToolBarCtrl->CheckButton(ID_TOOLBAR_COMMUNITY,TRUE); CMenu *pMenu=GetMenu()->GetSubMenu(0); pMenu->CheckMenuRadioItem(0,1,1,MF_BYPOSITION); m_bIsFileManager=FALSE; int cxMin; m_wndSplitter.GetColumnInfo(0,m_cxOldColumnPos1,cxMin); m_wndSplitter.GetColumnInfo(1,m_cxOldColumnPos2,cxMin); m_wndSplitter.SetColumnInfo(0,0,0); m_wndSplitter.SetColumnInfo(1,0,0); m_wndSplitter.RecalcLayout(); SetActivePane(0,2);//设置活动视为FormView } void CMainFrame::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default m_pDoc->OnTimer(nIDEvent);//转到CNethiefDoc的函数 } void CMainFrame::ActivateFrame(int nCmdShow) { // TODO: Add your specialized code here and/or call the base class //得到窗口位置及是否最大化 BOOL bIsMax=GetINIfileInt("Main Window Placement","IsMax"); if(bIsMax)//如果是最大化 CFrameWnd::ActivateFrame(SW_SHOWMAXIMIZED); WINDOWPLACEMENT wndpl; ZeroMemory(&wndpl,sizeof(WINDOWPLACEMENT)); wndpl.ptMaxPosition=CPoint(-4,-4); CRect rect;//设置窗口正常显示时的位置 rect.left=GetINIfileInt("Main Window Placement","left"); rect.top=GetINIfileInt("Main Window Placement","top"); rect.right=GetINIfileInt("Main Window Placement","right"); rect.bottom=GetINIfileInt("Main Window Placement","bottom"); wndpl.rcNormalPosition=rect; SetWindowPlacement(&wndpl); if(!bIsMax) CFrameWnd::ActivateFrame(nCmdShow); } void CMainFrame::OnClose() { // TODO: Add your message handler code here and/or call default WINDOWPLACEMENT wndpl; GetWindowPlacement(&wndpl); if(wndpl.flags==WPF_RESTORETOMAXIMIZED)//记录窗口是否最大化 WriteINIfileInt("Main Window Placement","IsMax",1); else WriteINIfileInt("Main Window Placement","IsMax",0); CRect rect; rect=wndpl.rcNormalPosition;//记录正常显示时的窗口位置 WriteINIfileInt("Main Window Placement","left",rect.left); WriteINIfileInt("Main Window Placement","top",rect.top); WriteINIfileInt("Main Window Placement","right",rect.right); WriteINIfileInt("Main Window Placement","bottom",rect.bottom); //记录窗口状态 WriteINIfileInt("Main Window Placement","IsFileManager",m_bIsFileManager); //记录分割栏位置 if(m_bIsFileManager) { int cxMin; m_wndSplitter.GetColumnInfo(0,m_cxOldColumnPos1,cxMin); } WriteINIfileInt("Main Window Placement","SplitterBarPos",m_cxOldColumnPos1); ///////////////////////////////////////////////////////////// m_wndConsoleToolBar.GetWindowPlacement(&wndpl); rect=wndpl.rcNormalPosition;//记录正常显示时的窗口位置 WriteINIfileInt("Main Window Placement","ConsoleToolBar.left",rect.left); WriteINIfileInt("Main Window Placement","ConsoleToolBar.top",rect.top); WriteINIfileInt("Main Window Placement","ConsoleToolBar.right",rect.right); WriteINIfileInt("Main Window Placement","ConsoleToolBar.bottom",rect.bottom); m_wndFileToolBar.GetWindowPlacement(&wndpl); rect=wndpl.rcNormalPosition;//记录正常显示时的窗口位置 WriteINIfileInt("Main Window Placement","FileToolBar.left",rect.left); WriteINIfileInt("Main Window Placement","FileToolBar.top",rect.top); WriteINIfileInt("Main Window Placement","FileToolBar.right",rect.right); WriteINIfileInt("Main Window Placement","FileToolBar.bottom",rect.bottom); m_wndNetToolBar.GetWindowPlacement(&wndpl); rect=wndpl.rcNormalPosition;//记录正常显示时的窗口位置 WriteINIfileInt("Main Window Placement","NetToolBar.left",rect.left); WriteINIfileInt("Main Window Placement","NetToolBar.top",rect.top); WriteINIfileInt("Main Window Placement","NetToolBar.right",rect.right); WriteINIfileInt("Main Window Placement","NetToolBar.bottom",rect.bottom); WriteINIfileInt("Main Window Placement","IsHideIcon",m_bIsHideIcon); //////////////////////////////////////////////////////////////// UnregisterHotKey(m_hWnd,0); //////////////////////////////////////////////////////////////// m_pDoc->OnClose(); CFrameWnd::OnClose(); } void CMainFrame::OnHelpTipoftheday()//显示每日一帖 { // TODO: Add your command handler code here CTipOfTheDayDlg dlg; dlg.DoModal(); } ////////////////////////////工具栏响应/////////////////////////////////// void CMainFrame::OnToolbarNewfile() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } SetActivePane(0,1); m_pDoc->OnToolbarNewfile(); } void CMainFrame::OnToolbarNewfolder() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } SetActivePane(0,1); m_pDoc->OnToolbarNewfolder(); } ////////////////////////////////////////////////// void CMainFrame::OnToolbarBack() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarBack(); } void CMainFrame::OnToolbarRefresh() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarRefresh(); } void CMainFrame::OnToolbarFindfile() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarFindfile(); } ////////////////////////////////////////////////// void CMainFrame::OnToolbarCut() { // TODO: Add your command handler code here if(IsActivePane(0,0))//如果是TreeView { m_pDoc->OnToolbarCut(TRUE); return; } if(IsActivePane(0,1))//如果是ListView { m_pDoc->OnToolbarCut(FALSE); return; } MessageBeep(0xFFFFFFFF);//如果都不是 } void CMainFrame::OnToolbarCopy() { // TODO: Add your command handler code here if(IsActivePane(0,0))//如果是TreeView { m_pDoc->OnToolbarCopy(TRUE); return; } if(IsActivePane(0,1))//如果是ListView { m_pDoc->OnToolbarCopy(FALSE); return; } MessageBeep(0xFFFFFFFF);//如果都不是 } void CMainFrame::OnToolbarPaste() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarPaste(); } /////////////////////////////////////////////// void CMainFrame::OnMenuFileRun() { // TODO: Add your command handler code here if(!(IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnMenuFileRun(); } void CMainFrame::OnToolbarRun() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarRun(); } void CMainFrame::OnMenuFileRename() { // TODO: Add your command handler code here if(IsActivePane(0,0))//如果是TreeView { m_pDoc->OnTreeMenuFileRename(); return; } if(IsActivePane(0,1))//如果是ListView { m_pDoc->OnListMenuFileRename(); return; } MessageBeep(0xFFFFFFFF);//如果都不是 } void CMainFrame::OnToolbarView() { // TODO: Add your command handler code here if(!(IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarView(); } void CMainFrame::OnToolbarDelete() { // TODO: Add your command handler code here if(IsActivePane(0,0))//如果是TreeView { m_pDoc->OnTreeToolbarDelete(); return; } if(IsActivePane(0,1))//如果是ListView { m_pDoc->OnListToolbarDelete(); return; } MessageBeep(0xFFFFFFFF);//如果都不是 } void CMainFrame::OnToolbarProperty() { // TODO: Add your command handler code here if(IsActivePane(0,0))//如果是TreeView { m_pDoc->OnToolbarProperty(TRUE); return; } if(IsActivePane(0,1))//如果是ListView { m_pDoc->OnToolbarProperty(FALSE); return; } MessageBeep(0xFFFFFFFF);//如果都不是 } void CMainFrame::OnToolbarSelectall() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } SetActivePane(0,1); m_pDoc->OnToolbarSelectall(); } void CMainFrame::OnToolbarReverseselect() { // TODO: Add your command handler code here if(!(IsActivePane(0,0)||IsActivePane(0,1))) { MessageBeep(0xFFFFFFFF); return; } SetActivePane(0,1); m_pDoc->OnToolbarReverseselect(); } /////////////////////////////////////////////////////////////////////////////// BOOL CMainFrame::IsActivePane(int nRow,int nCol) { int nRowTemp; int nColTemp; m_wndSplitter.GetActivePane(&nRowTemp,&nColTemp); if(nRowTemp==nRow&&nColTemp==nCol) return TRUE; else return FALSE; } void CMainFrame::SetActivePane(int nRow,int nCol) { m_wndSplitter.SetActivePane(nRow,nCol); } void CMainFrame::OnUpdateIndicatorProgress(CCmdUI *pCmdUI) { m_pDoc->OnUpdateIndicatorProgress(pCmdUI); } //////////////////INI文件操作函数///////////////// int CMainFrame::GetINIfileInt(LPCTSTR lpSectionName, LPCTSTR lpKeyName) { CString exeFullPath; //用于保存当前执行程序路径 GetModuleFileName(NULL, //得到路径 exeFullPath.GetBufferSetLength(MAX_PATH),MAX_PATH); exeFullPath.GetBufferSetLength(exeFullPath.ReverseFind('.')); //找到 exeFullPath=exeFullPath+".INI"; //源文件名 return GetPrivateProfileInt(lpSectionName,lpKeyName,-1, exeFullPath.GetBufferSetLength(MAX_PATH)); } BOOL CMainFrame::WriteINIfileInt(LPCTSTR lpSectionName, LPCTSTR lpKeyName, INT nValue) { CString exeFullPath; //用于保存当前执行程序路径 GetModuleFileName(NULL, //得到路径 exeFullPath.GetBufferSetLength(MAX_PATH),MAX_PATH); exeFullPath.GetBufferSetLength(exeFullPath.ReverseFind('.')); //找到 exeFullPath=exeFullPath+".INI"; //源文件名 CString strValue; strValue.Format("%d",nValue); //把整型转换成字符型 return WritePrivateProfileString(lpSectionName,lpKeyName, strValue.GetBufferSetLength(strValue.GetLength()), exeFullPath.GetBufferSetLength(MAX_PATH)); } ////////////////////////////////////////////////////////// void CMainFrame::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nType, cx, cy); // TODO: Add your message handler code here if(m_nStartup<1) { m_nStartup++; return; } m_pDoc->SetIndicatorRect(); if(nType==SIZE_MINIMIZED) { ShowWindow(SW_HIDE); if(m_bIsHideIcon) { NOTIFYICONDATA tnd; tnd.cbSize=sizeof(NOTIFYICONDATA); tnd.hWnd=AfxGetMainWnd()->m_hWnd; tnd.uID=IDR_MAINFRAME;//保证删除的是我们的图标 Shell_NotifyIcon(NIM_DELETE,&tnd); } } } void CMainFrame::OnSystray(WPARAM wParam,LPARAM lParam) { UINT uMouseMsg;//鼠标动作 uMouseMsg=(UINT)lParam; if(uMouseMsg==WM_LBUTTONDOWN)//如果是单击左键 { AfxGetMainWnd()->SetForegroundWindow(); OnSystraymenuWindow(); AfxGetMainWnd()->PostMessage(WM_NULL,0,0); } if(uMouseMsg==WM_RBUTTONDOWN) { AfxGetMainWnd()->SetForegroundWindow(); CMenu menu;//弹出Popup菜单 menu.LoadMenu(IDR_SYSTRAYMENU); CMenu* pPopup=menu.GetSubMenu(0); pPopup->SetDefaultItem(ID_SYSTRAYMENU_WINDOW); CPoint Point; GetCursorPos(&Point); pPopup->TrackPopupMenu(TPM_LEFTALIGN, Point.x,Point.y,AfxGetMainWnd(),NULL); AfxGetMainWnd()->PostMessage(WM_NULL,0,0); } } void CMainFrame::OnSystraymenuWindow() { // TODO: Add your command handler code here if(IsIconic()) { ShowWindow(SW_RESTORE); if(m_bIsHideIcon) { NOTIFYICONDATA tnd; tnd.cbSize=sizeof(NOTIFYICONDATA); tnd.hWnd=AfxGetMainWnd()->m_hWnd; tnd.uID=IDR_MAINFRAME; tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; tnd.uCallbackMessage=WM_SYSTRAY; if(m_pDoc->m_bIsOnline) { tnd.hIcon=AfxGetApp()->LoadIcon(IDI_SYSTRAY); CString strTip="网络神偷"+m_pDoc->m_strServerNum; strcpy(tnd.szTip,(LPCSTR)strTip); } else { if(m_pDoc->m_bLogoning) { tnd.hIcon=AfxGetApp()->LoadIcon(IDI_SYSTRAY); strcpy(tnd.szTip,"网络神偷[正在登录...]"); } else { tnd.hIcon=AfxGetApp()->LoadIcon(IDI_SYSTRAY1); strcpy(tnd.szTip,"网络神偷[脱机]"); } } Shell_NotifyIcon(NIM_ADD,&tnd); } Sleep(50); SetForegroundWindow(); } else { if(AfxGetMainWnd()==GetForegroundWindow()) { ShowWindow(SW_SHOWMINIMIZED); } else { SetForegroundWindow(); } } } void CMainFrame::OnHotKey(WPARAM wParam,LPARAM lParam) { int nIDHotKey=(int)wParam; //产生消息的热键ID if(nIDHotKey==0) { OnSystraymenuWindow(); } } void CMainFrame::OnMenuConsoleLogon() { // TODO: Add your command handler code here m_pDoc->OnMenuConsoleLogon(); } void CMainFrame::OnUpdateSystraymenuHide(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_bIsHideIcon); } void CMainFrame::OnSystraymenuHide() { // TODO: Add your command handler code here m_bIsHideIcon=!m_bIsHideIcon; if(IsIconic()) { NOTIFYICONDATA tnd; tnd.cbSize=sizeof(NOTIFYICONDATA); tnd.hWnd=AfxGetMainWnd()->m_hWnd; tnd.uID=IDR_MAINFRAME;//保证删除的是我们的图标 Shell_NotifyIcon(NIM_DELETE,&tnd); } } ///////////////网络工具栏///////////////////// void CMainFrame::OnToolbarDeletehost() { // TODO: Add your command handler code here if(!IsActivePane(0,0)) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarDeletehost(); } void CMainFrame::OnToolbarDisconnect() { // TODO: Add your command handler code here if(!IsActivePane(0,0)) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnToolbarDisconnect(); } void CMainFrame::OnMenuNetUninstall() { // TODO: Add your command handler code here if(!IsActivePane(0,0)) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnMenuNetUninstall(); } void CMainFrame::OnMenuNetNote() { // TODO: Add your command handler code here if(!IsActivePane(0,0)) { MessageBeep(0xFFFFFFFF); return; } m_pDoc->OnMenuNetNote(); } void CMainFrame::OnToolbarStop() { // TODO: Add your command handler code here m_pDoc->OnToolbarStop(); } void CMainFrame::OnToolbarBuildserver() { // TODO: Add your command handler code here m_pDoc->OnToolbarBuildserver(); } void CMainFrame::OnMenuNetOption() { // TODO: Add your command handler code here m_pDoc->OnMenuNetOption(); } void CMainFrame::OnMenuNetDownload() { // TODO: Add your command handler code here m_pDoc->OnMenuNetDownload(); } /////////////网络工具栏结束//////////////////// void CMainFrame::OnHelpReadme() { // TODO: Add your command handler code here CString exeFullPath; //用于保存当前执行程序路径 GetModuleFileName(NULL, //得到路径 exeFullPath.GetBufferSetLength(MAX_PATH),MAX_PATH); exeFullPath.GetBufferSetLength(exeFullPath.ReverseFind('\\')+1); //找到 exeFullPath.ReleaseBuffer(); CString strLogFileName=exeFullPath+"Readme.txt"; //源文件名 ShellExecute(NULL,NULL,strLogFileName,NULL,exeFullPath,SW_SHOWMAXIMIZED); } void CMainFrame::OnHelpHomepage() { // TODO: Add your command handler code here ShellExecute(NULL,NULL,"http://www.greenstuffsoft.net/" ,NULL,NULL,SW_SHOWNORMAL); } void CMainFrame::OnHelpEmail() { // TODO: Add your command handler code here CNethiefApp* app=(CNethiefApp*)AfxGetApp(); ShellExecute(NULL,NULL, "mailto:webmaster@greenstuffsoft.net?subject=关于 "+app->m_strVersion ,NULL,NULL,SW_SHOWNORMAL); } void CMainFrame::OnHelpUpdate() { // TODO: Add your command handler code here m_pDoc->OnHelpUpdate(); } BOOL CMainFrame::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: Add your message handler code here and/or call default if(m_pDoc->m_bIsBusy) { SetCursor(m_hCursor); return TRUE; } return CFrameWnd::OnSetCursor(pWnd, nHitTest, message); } //////////////////////////////////////////////////////////////// void CMainFrame::OnSocket(WPARAM wParam,LPARAM lParam) { DWORD dwEvent=lParam; switch(dwEvent) { case FD_ACCEPT: { m_pDoc->OnSocketAccept(); break; } } } void CMainFrame::OnWorkThread(WPARAM wParam,LPARAM lParam) { DWORD dwThreadMessage=wParam; DWORD dwResult=lParam; switch(dwThreadMessage) { case CMD_NOTIFYCONNECT: { m_pDoc->OnTM_NotifyConnect(dwResult); break; } case CMD_IDVERIFY: { m_pDoc->OnTM_IDVerify(dwResult); break; } case CMD_DOWNLOADDISKDRIVEINFO: { m_pDoc->OnTM_DownloadDiskDriveInfo(dwResult); break; } case CMD_EXPANDDIRECTORY: { m_pDoc->OnTM_ExpandDirectory(dwResult); break; } case CMD_SHOWFILELIST: { m_pDoc->OnTM_ShowFileList(dwResult); break; } case CMD_RENAMEFILE: { m_pDoc->OnTM_RenameFile(dwResult); break; } case CMD_NEWFILE: { m_pDoc->OnTM_NewFile(dwResult); break; } case CMD_NEWFOLDER: { m_pDoc->OnTM_NewFolder(dwResult); break; } case CMD_DELETEFILE: { m_pDoc->OnTM_DeleteFile(dwResult); break; } case CMD_REMOTEPASTE: { m_pDoc->OnTM_RemotePaste(dwResult); break; } case CMD_GETOPERATIONOBJECT: { m_pDoc->OnTM_GetOperationObject(dwResult); break; } case CMD_DOWNLOADFILE: { m_pDoc->OnTM_DownloadFile(dwResult); break; } case CMD_UPLOADFILE: { m_pDoc->OnTM_UploadFile(dwResult); break; } case CMD_SHOWPROPERTY_MULTI: { m_pDoc->OnTM_ShowProperty_Multi(dwResult); break; } case CMD_SHOWPROPERTY_SINGLE: { m_pDoc->OnTM_ShowProperty_Single(dwResult); break; } case CMD_MODIFYPROPERTY_SINGLE: { m_pDoc->OnTM_ModifyProperty_Single(dwResult); break; } case CMD_SHOWPROPERTY_DISKDRIVE: { m_pDoc->OnTM_ShowProperty_Diskdrive(dwResult); break; } case CMD_MODIFYPROPERTY_DISKDRIVE: { m_pDoc->OnTM_ModifyProperty_Diskdrive(dwResult); break; } case CMD_REMOTERUN: { m_pDoc->OnTM_RemoteRun(dwResult); break; } case CMD_REMOTEUNINSTALL: { m_pDoc->OnTM_RemoteUninstall(dwResult); break; } case CMD_FINDFILE: { m_pDoc->OnTM_FindFile(dwResult); break; } case CMD_SHOWNOTE: { m_pDoc->OnTM_ShowNote(dwResult); break; } case OTR_REFRESHSTATUSBAR: { m_pDoc->OnTM_RefreshStatusBar(dwResult); break; } case CMD_GETFILEINFO: { m_pDoc->OnTM_GetFileInfo(dwResult); break; } } }