📄 netmanagerdlg.cpp
字号:
// 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 + -