⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netmanagerdlg.cpp

📁 网络管理器源码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
// NetManagerDlg.cpp : implementation file
//

#include "stdafx.h"
#include "NetManager.h"
#include "NetManagerDlg.h"
#include "GlobalsExtern.h"
#include <afxpriv.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

static UINT auIDStatusBar[] = 
{ 
  ID_SEPARATOR
};

/////////////////////////////////////////////////////////////////////////////
// CNetManagerDlg dialog

CNetManagerDlg::CNetManagerDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNetManagerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNetManagerDlg)
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32

  g_pThisApp = AfxGetApp();
	m_hIcon = g_pThisApp->LoadIcon(IDR_MAINFRAME);

  m_bDlgCreated = false;
  m_bStarted = false;

  m_dlgPropSheet =  new CPropertySheet;
  m_pPageGeneral =  new CPageGeneral;
  m_pPageFiles =    new CPageFiles;
  m_pPageYou =      new CPageYou;
  m_pPageNet =      new CPageNet;
  m_pPagePeople =   new CPagePeople;
  m_pPageMail =     new CPageMail;

  m_BlinkState = true;

  // init globals
  g_History = &m_History;
  g_Output = &m_Output;
  g_AnimateWait = &m_AnimateWait;
  g_AnimatePeople = &m_AnimatePeople;
  g_AnimateNet = &m_AnimateNet;
}

void CNetManagerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNetManagerDlg)
	DDX_Control(pDX, IDC_INFOTREE, m_InfoTree);
	DDX_Control(pDX, IDC_ANIMATE_WAIT, m_AnimateWait);
	DDX_Control(pDX, IDC_ANIMATE_NET, m_AnimateNet);
	DDX_Control(pDX, IDC_ANIMATE_PEOPLE, m_AnimatePeople);
	DDX_Control(pDX, IDB_CLEAR_OUTPUT, m_ClearOutput);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CNetManagerDlg, CDialog)
	//{{AFX_MSG_MAP(CNetManagerDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDB_SHOW_OUTPUT, OnShowOutput)
	ON_BN_CLICKED(IDB_CLEAR_OUTPUT, OnClearOutput)
	ON_BN_CLICKED(IDB_START, OnStart)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDB_END, OnEnd)
	ON_WM_HELPINFO()
	ON_EN_CHANGE(IDC_OUTPUT, OnChangeOutput)
	ON_WM_SIZE()
	ON_WM_GETMINMAXINFO()
	ON_WM_ACTIVATE()
	ON_NOTIFY(TCN_SELCHANGE, IDC_TABCTRL_OUTPUT, OnSelchangeTabctrlOutput)
	ON_EN_CHANGE(IDC_HISTORY, OnChangeHistory)
	ON_NOTIFY(TVN_SELCHANGED, IDC_INFOTREE, OnSelchangedInfotree)
	ON_WM_SETCURSOR()
	ON_WM_SETTINGCHANGE()
	ON_WM_MENUSELECT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNetManagerDlg message handlers

void CNetManagerDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
  if(m_bDlgCreated)
  {
    lpMMI->ptMinTrackSize.x = DLG_MIN_WIDTH;
    lpMMI->ptMaxTrackSize.x = DLG_MAX_WIDTH;
    lpMMI->ptMinTrackSize.y = m_nDlgHeight;
    lpMMI->ptMaxTrackSize.y = m_nDlgHeight;
  }
}

/////////////////////////////////////////////////////////////////////////////

void CNetManagerDlg::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);

  if(m_bDlgCreated)
  {
    ResizeWindows();

    // We need to resize the dialog to make room for control bars.
	  // First, figure out how big the control bars are.

	  CRect rcClientStart;
	  CRect rcClientNow;
	  GetClientRect(rcClientStart);
	  RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, reposQuery, rcClientNow);

	  // Now move all the controls so they are in the same relative
	  // position within the remaining client area as they would be
	  // with no control bars.

	  CPoint ptOffset(rcClientNow.left - rcClientStart.left, rcClientNow.top - rcClientStart.top); 

	  CRect  rcChild;					
	  CWnd* pwndChild = GetWindow(GW_CHILD);
	  while (pwndChild)
	  {                               
		  pwndChild->GetWindowRect(rcChild);
		  ScreenToClient(rcChild);
		  rcChild.OffsetRect(ptOffset);
		  pwndChild->MoveWindow(rcChild, FALSE);
		  pwndChild = pwndChild->GetNextWindow();
	  }

	  // Adjust the dialog window dimensions
	  CRect rcWindow;
	  GetWindowRect(rcWindow);
	  rcWindow.right += rcClientStart.Width() - rcClientNow.Width();
	  rcWindow.bottom += rcClientStart.Height() - rcClientNow.Height();
	  MoveWindow(rcWindow, FALSE);
	  
	  // And position the control bars
	  RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
  }

/*
  // for menu (more than 1 row of main menu (while resizing))
  CRect rc;
  GetClientRect(rc);
  if(rc.Height() != m_nDlgClientHeight)
    m_nDlgHeight += m_nDlgClientHeight - rc.Height();   // new height
*/
}

/////////////////////////////////////////////////////////////////////////////

BOOL CNetManagerDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
  m_Output.SubclassDlgItem(IDC_OUTPUT, this);
  m_History.SubclassDlgItem(IDC_HISTORY, this);
  m_InfoWindow.SubclassDlgItem(IDC_INFOWINDOW, this);
  m_OutputTabCtrl.SubclassDlgItem(IDC_TABCTRL_OUTPUT, this);

  m_History.ShowWindow(SW_SHOWNA);
  m_Output.ShowWindow(SW_HIDE);
  m_InfoTree.ShowWindow(SW_HIDE);
  m_InfoWindow.ShowWindow(SW_HIDE);

// ToolTips -----------------------------------------------------------------

  m_ToolTip.Create(this);
  m_ToolTip.Activate(TRUE);

  CWnd* pWnd = GetWindow(GW_CHILD);
  while(pWnd)
  {
    int nID = pWnd->GetDlgCtrlID();
    if (nID != -1)
      m_ToolTip.AddTool(pWnd, pWnd->GetDlgCtrlID());
    pWnd = pWnd->GetWindow(GW_HWNDNEXT);
  }

//  m_pPageGeneral->m_ToolTip = &m_ToolTip;

// Tab control buttons ------------------------------------------------------

  CImageList* pOutputTabButtons = new CImageList;
  pOutputTabButtons->Create(16, 16, ILC_COLOR8 | ILC_MASK, 3, 0);
  pOutputTabButtons->Add(AfxGetApp()->LoadIcon(IDI_HISTORY));
  pOutputTabButtons->Add(AfxGetApp()->LoadIcon(IDI_OUTPUT));
  pOutputTabButtons->Add(AfxGetApp()->LoadIcon(IDI_INFO));
  m_OutputTabCtrl.SetImageList(pOutputTabButtons);
  TC_ITEM TabCtrlItem;
  TabCtrlItem.mask = TCIF_TEXT | TCIF_IMAGE;
  TabCtrlItem.iImage = 0;
  TabCtrlItem.pszText = "History";
  m_OutputTabCtrl.InsertItem(0, &TabCtrlItem);
  TabCtrlItem.iImage = 1;
  TabCtrlItem.pszText = "Output";
  m_OutputTabCtrl.InsertItem(1, &TabCtrlItem);
  TabCtrlItem.iImage = 2;
  TabCtrlItem.pszText = "Info";
  m_OutputTabCtrl.InsertItem(2, &TabCtrlItem);

// Info Tree ----------------------------------------------------------------

  CImageList* pInfoImages = new CImageList;
  pInfoImages->Create(16, 16, ILC_COLOR8 | ILC_MASK, 2, 0);
  pInfoImages->Add(AfxGetApp()->LoadIcon(IDI_INFOROOT));
  pInfoImages->Add(AfxGetApp()->LoadIcon(IDI_INFOROOTOPEN));
  pInfoImages->Add(AfxGetApp()->LoadIcon(IDI_INFOTEXT));
  pInfoImages->Add(AfxGetApp()->LoadIcon(IDI_INFOTEXTOPEN));
  m_InfoTree.SetImageList(pInfoImages, TVSIL_NORMAL);

  HTREEITEM hTreeItem1;
  HTREEITEM hTreeItem2;
  hTreeItem1 = m_InfoTree.InsertItem("NetManager", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_NETMANAGER);
  hTreeItem2 = m_InfoTree.InsertItem("What is NetManager?", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_NETMANAGER_WHATIS);
  hTreeItem2 = m_InfoTree.InsertItem("Version", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_NETMANAGER_VERSION);
  hTreeItem2 = m_InfoTree.InsertItem("Author", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_NETMANAGER_AUTHOR);

  hTreeItem1 = m_InfoTree.InsertItem("General Functions", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_GENERAL);
  hTreeItem2 = m_InfoTree.InsertItem("Start All", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_GENERAL_STARTALL);
  hTreeItem2 = m_InfoTree.InsertItem("End All", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_GENERAL_ENDALL);
  hTreeItem2 = m_InfoTree.InsertItem("Automatization", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_GENERAL_AUTOMATIZATION);

  hTreeItem1 = m_InfoTree.InsertItem("Page 1 - Utilities", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_PAGE1);
  hTreeItem2 = m_InfoTree.InsertItem("Resolve Address", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE1_RESOLVE);
  hTreeItem2 = m_InfoTree.InsertItem("Ping a Computer", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE1_PING);
  hTreeItem2 = m_InfoTree.InsertItem("Browse Local Network", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE1_BROWSE);
  hTreeItem2 = m_InfoTree.InsertItem("Enumerate Any Address", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE1_ENUMERATE);

  hTreeItem1 = m_InfoTree.InsertItem("Page 2 - Files", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_PAGE2);
  hTreeItem2 = m_InfoTree.InsertItem("Executables", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE2_EXECUTABLES);
  hTreeItem2 = m_InfoTree.InsertItem("Copying", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE2_COPYING);

  hTreeItem1 = m_InfoTree.InsertItem("Page 3 - You", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_PAGE3);
  hTreeItem2 = m_InfoTree.InsertItem("On", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE3_ON);
  hTreeItem2 = m_InfoTree.InsertItem("Off", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE3_OFF);
  hTreeItem2 = m_InfoTree.InsertItem("HTML File", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE3_HTML);

  hTreeItem1 = m_InfoTree.InsertItem("Page 4 - Net", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_PAGE4);
  hTreeItem2 = m_InfoTree.InsertItem("Check All", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE4_CHECKALL);
  hTreeItem2 = m_InfoTree.InsertItem("Monitoring", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE4_MONITORING);

  hTreeItem1 = m_InfoTree.InsertItem("Page 5 - People", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_PAGE5);
  hTreeItem2 = m_InfoTree.InsertItem("Inserting Data", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE5_INSERTING);
  hTreeItem2 = m_InfoTree.InsertItem("Finger", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE5_FINGER);
  hTreeItem2 = m_InfoTree.InsertItem("Manual Finger", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE5_MANUAL);
  hTreeItem2 = m_InfoTree.InsertItem("Active", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE5_ACTIVE);
  hTreeItem2 = m_InfoTree.InsertItem("Check All", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE5_CHECKALL);
  hTreeItem2 = m_InfoTree.InsertItem("Monitoring", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE5_MONITORING);

  hTreeItem1 = m_InfoTree.InsertItem("Page 6 - Mail", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_PAGE6);
  hTreeItem2 = m_InfoTree.InsertItem("Configuring", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE6_CONFIGURING);
  hTreeItem2 = m_InfoTree.InsertItem("Settings", 2, 3, hTreeItem1, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem2, IDS_INFO_PAGE6_SETTINGS);

  hTreeItem1 = m_InfoTree.InsertItem("Tips & FAQs", 0, 1, TVI_ROOT, TVI_LAST);
  m_InfoTree.SetItemData(hTreeItem1, IDS_INFO_TIPSFAQS);

// AVI Files ----------------------------------------------------------------

  if(m_AnimateWait.Open(IDR_AVI_WAIT) == 0)
    AfxMessageBox("Error - Could insert play AVI file");
  
  if(m_AnimatePeople.Open(IDR_AVI_PEOPLE) == 0)
    AfxMessageBox("Error - Could insert play AVI file");

  if(m_AnimateNet.Open(IDR_AVI_NET) == 0)
    AfxMessageBox("Error - Could insert play AVI file");

  m_ClearOutput.EnableWindow(FALSE);

  m_pOutput = (CEdit*)GetDlgItem(IDC_OUTPUT);

// Change the path for INI file ---------------------------------------------

  CString sModFileName;
  GetModuleFileName(NULL, sModFileName.GetBuffer(MAX_PATH), MAX_PATH);
  sModFileName.ReleaseBuffer();

  sModFileName.MakeReverse();
  m_sIniFilePath = sModFileName.Right(sModFileName.GetLength() - sModFileName.Find('\\'));
  m_sIniFilePath.MakeReverse();
  m_sIniFilePath += "netmanag.ini";
  sModFileName.MakeReverse();

  free((void*)g_pThisApp->m_pszProfileName);
  g_pThisApp->m_pszProfileName = _tcsdup(m_sIniFilePath);

// files exe ----------------------------------------------------------------

  m_pPageFiles->m_psArrayExeNames = new CStringArray;
  m_pPageFiles->m_pArrayAutoStart = new CUIntArray;
  IniToStringArray("Files Exe", "Executable", m_pPageFiles->m_psArrayExeNames);

  int i = m_pPageFiles->m_psArrayExeNames->GetSize();
  if(i == 1)
    m_pPageFiles->m_psArrayExeNames->RemoveAll();
  else if(i % 2 == 1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -