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

📄 mainsheet.cpp

📁 NDIS HOOK实例
💻 CPP
字号:
// MainSheet.cpp : implementation file
//

#include "stdafx.h"
#include "Property.h"
#include "MainSheet.h"

//owner add
#include "GuiRes.h"
#include "acl.h"
#include "systemset.h"

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

//=============================================================================================
// CMainSheet

extern CAclFile		m_AclFile;
extern CPropertyApp theApp;

IMPLEMENT_DYNAMIC(CMainSheet, CPropertySheet)

CMainSheet::CMainSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
}

CMainSheet::CMainSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
	AddPage(&m_PacketMonitor);
	AddPage(&m_LogQuery);
	AddPage(&m_Acl);
	AddPage(&m_SystemSet);
	AddPage(&m_About);
	SetLogoText(GUI_APP_LOGO);
}

CMainSheet::~CMainSheet()
{
}


BEGIN_MESSAGE_MAP(CMainSheet, CPropertySheet)
	//{{AFX_MSG_MAP(CMainSheet)
	ON_WM_PAINT()
	ON_WM_SYSCOMMAND()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

//=============================================================================================
// CMainSheet message handlers

BOOL CMainSheet::OnInitDialog() 
{
	BOOL bResult = CPropertySheet::OnInitDialog();
	
	SetLogoFont("Arial");
	SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), TRUE);
	InitDlgResource();
	ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW); 

	return bResult;
}

void CMainSheet::OnPaint() 
{
	CPaintDC dc(this);

	if(m_LogoText.IsEmpty())
		return;

	CRect		rectTabCtrl;
	CRect		rectOk;
	CRect		rectText;

	GetTabControl()	->GetWindowRect(rectTabCtrl);
	ScreenToClient(rectTabCtrl);
	GetDlgItem(IDOK)->GetWindowRect(rectOk);
	ScreenToClient(rectOk);
	dc.SetBkMode(TRANSPARENT);

	rectText.left		= rectTabCtrl.left;
	rectText.top		= rectOk.top;
	rectText.bottom		= rectOk.bottom;
	rectText.right		= rectOk.left;
	CFont*		OldFont = dc.SelectObject(&m_FontLogo);
	COLORREF	OldColor= dc.SetTextColor(GetSysColor(COLOR_3DHILIGHT));

	dc.DrawText		(m_LogoText, rectText + CPoint(1, 1), DT_SINGLELINE | DT_LEFT | DT_VCENTER);
	dc.SetTextColor	(GetSysColor(COLOR_3DSHADOW));
	dc.DrawText		(m_LogoText, rectText, DT_SINGLELINE | DT_LEFT | DT_VCENTER);
	dc.SetTextColor	(OldColor);
	dc.SelectObject	(OldFont);
}

BOOL CMainSheet::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 
{
	switch(nID)
	{
	case IDOK:
		if(OnApply())	
			return TRUE;

		ShowWindow(SW_HIDE);
		return TRUE;

	case IDCANCEL:
		OnCancel();
		ShowWindow(SW_HIDE);
		return TRUE;

	case ID_APPLY_NOW:
		if(OnApply())	
			return TRUE;
		break;

	case IDHELP:
		break;
	}

	return CPropertySheet::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}

BOOL CMainSheet::OnApply()
{
	if(!GetDlgItem(ID_APPLY_NOW)->IsWindowEnabled())	//exit and not do with system
		return FALSE;								

	if(m_AclFile.SaveAcl() != XERR_SUCCESS)
	{
		AfxMessageBox(GUI_ACL_MESSAGE_SAVE_ACL_ERROR);
		return TRUE;
	}

	theApp.SetAutoStart();

	if(!theApp.InitDllData())
	{
		AfxMessageBox(GUI_ACL_MESSAGE_INIT_DLL_DATA_ERROR);
		return TRUE;
	}

	GetDlgItem(ID_APPLY_NOW)->EnableWindow(FALSE);
	return FALSE;
}

void CMainSheet::OnCancel()
{
	if(!GetDlgItem(ID_APPLY_NOW)->IsWindowEnabled())
		return;

	if(AfxMessageBox(GUI_ACL_MESSAGE_ACL_ASK_SAVE, MB_YESNO) == IDYES)
	{
		OnApply();
		return;
	}

	GetDlgItem(ID_APPLY_NOW)->EnableWindow(FALSE);

	if(m_AclFile.ReadAcl() != XERR_SUCCESS)
	{
		AfxMessageBox(GUI_ACL_MESSAGE_ACL_READ_ERROR);
		return;
	}

	CAcl *dlgAcl = (CAcl*)this->GetPage(2);
	dlgAcl->Refresh();

	CSystemSet *dlgSystemSet = (CSystemSet*)this->GetPage(3);
	dlgSystemSet->Refresh();
}

void CMainSheet::OnSysCommand(UINT nID, LPARAM lParam) 
{
	if(nID == SC_CLOSE)
	{
		OnCancel();
		ShowWindow(SW_HIDE);
		return;
	}

	CPropertySheet::OnSysCommand(nID, lParam);
}

//---------------------------------------------------------------------------------------------
//set logo text

void CMainSheet::SetLogoText(CString Text)
{
	m_LogoText	= Text;
}

//---------------------------------------------------------------------------------------------
//set logo font

void CMainSheet::SetLogoFont(
	CString			Name,
	int				nHeight,
	int				nWeight,
	BYTE			bItalic,
	BYTE			bUnderline
)
{
	if(m_FontLogo.m_hObject)
		m_FontLogo.Detach();

	m_FontLogo.CreateFont(0,0,0,0,nWeight,bItalic,bUnderline,0,0,0,0,0,0,Name);
}

//---------------------------------------------------------------------------------------------
//initialize dialog's resource

void CMainSheet::InitDlgResource()
{
	SetDlgItemText(IDOK,GUI_BUTTON_OK);
	SetDlgItemText(IDCANCEL,GUI_BUTTON_CANCEL);
	SetDlgItemText(IDHELP,GUI_BUTTON_HELP);
	SetDlgItemText(ID_APPLY_NOW,GUI_BUTTON_APPLY);
}

⌨️ 快捷键说明

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