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

📄 otheritem.cpp

📁 visual c++ 实例编程
💻 CPP
字号:
// OtherItem.cpp : implementation file
//

#include "stdafx.h"
#include "winset.h"
#include "OtherItem.h"
#include "RegEdit.h"
#include "FolderDialog.h"
#include "WinSetDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// COtherItem property page

IMPLEMENT_DYNCREATE(COtherItem, CPropertyPage)

COtherItem::COtherItem() : CPropertyPage(COtherItem::IDD)
{
	m_psp.dwFlags &= ~(PSP_HASHELP);
	//m_psp.dwFlags |=PSP_USEHICON ;
	//m_psp.hIcon=AfxGetApp()->LoadIcon(IDI_OTHERITEM);

	Modify=FALSE;
	
	//{{AFX_DATA_INIT(COtherItem)
	m_bDisableBackPage = FALSE;
	m_bDisableDevicePage = FALSE;
	m_bDisableDisplay = FALSE;
	m_bDisableFilesysBtn = FALSE;
	m_bDisableGuisePage = FALSE;
	m_bDisableHardsetPage = FALSE;
	m_bDisableScrPage = FALSE;
	m_bDisableVirmemBtn = FALSE;
	m_bDisableUsedos = FALSE;
	m_bDisableUseregedit = FALSE;
	m_sCloseAppWaitTime = _T("10000");
	m_sIETitle = _T("Microsoft Internet Explorer");
	m_sOutlookMailPath = _T("");
	m_bDisableSetPage = FALSE;
	//}}AFX_DATA_INIT
}

COtherItem::~COtherItem()
{
}

void COtherItem::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(COtherItem)
	DDX_Check(pDX, IDC_DISABLEBACKPAGE, m_bDisableBackPage);
	DDX_Check(pDX, IDC_DISABLEDEVICEPAGE, m_bDisableDevicePage);
	DDX_Check(pDX, IDC_DISABLEDISPLAY, m_bDisableDisplay);
	DDX_Check(pDX, IDC_DISABLEFILESYSBTN, m_bDisableFilesysBtn);
	DDX_Check(pDX, IDC_DISABLEGUISEPAGE, m_bDisableGuisePage);
	DDX_Check(pDX, IDC_DISABLEHARDSETPAGE, m_bDisableHardsetPage);
	DDX_Check(pDX, IDC_DISABLESCRPAGE, m_bDisableScrPage);
	DDX_Check(pDX, IDC_DISABLEVIRMEMBTN, m_bDisableVirmemBtn);
	DDX_Check(pDX, IDC_DISABLEUSEDOS, m_bDisableUsedos);
	DDX_Check(pDX, IDC_DISABLEUSEREGEDIT, m_bDisableUseregedit);
	DDX_Text(pDX, IDC_CLOSENORESAPP, m_sCloseAppWaitTime);
	DDV_MaxChars(pDX, m_sCloseAppWaitTime, 7);
	DDX_Text(pDX, IDC_IEWINTITILE, m_sIETitle);
	DDV_MaxChars(pDX, m_sIETitle, 255);
	DDX_Text(pDX, IDC_OUTLOOKMAILPATH, m_sOutlookMailPath);
	DDV_MaxChars(pDX, m_sOutlookMailPath, 256);
	DDX_Check(pDX, IDC_DISABLESETPAGE, m_bDisableSetPage);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(COtherItem, CPropertyPage)
//{{AFX_MSG_MAP(COtherItem)
	ON_EN_CHANGE(IDC_CLOSENORESAPP, OnChange)
ON_BN_CLICKED(IDC_DISABLEUSEREGEDIT, OnLChange)
	ON_BN_CLICKED(IDC_BROWSEPATH, OnBrowsepath)
	ON_WM_CTLCOLOR()
	ON_WM_LBUTTONDBLCLK()
ON_BN_CLICKED(IDC_DISABLEUSEDOS, OnLChange)
ON_BN_CLICKED(IDC_DISABLEBACKPAGE, OnLChange)
ON_BN_CLICKED(IDC_DISABLEDEVICEPAGE, OnLChange)
ON_BN_CLICKED(IDC_DISABLEDISPLAY, OnLChange)
ON_BN_CLICKED(IDC_DISABLEFILESYSBTN, OnLChange)
ON_BN_CLICKED(IDC_DISABLEGUISEPAGE, OnLChange)
ON_BN_CLICKED(IDC_DISABLEHARDSETPAGE, OnLChange)
ON_BN_CLICKED(IDC_DISABLESCRPAGE, OnLChange)
ON_BN_CLICKED(IDC_DISABLEVIRMEMBTN, OnLChange)
	ON_EN_CHANGE(IDC_IEWINTITILE, OnLChange)
	ON_EN_CHANGE(IDC_OUTLOOKMAILPATH, OnLChange)
	ON_BN_CLICKED(IDC_DISABLESETPAGE, OnLChange)
	ON_WM_MOUSEMOVE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COtherItem message handlers

void COtherItem::OnChange() 
{
	((CWinSetApp *)AfxGetApp())->SetModifyflag();
	SetModified(TRUE);	
	Modify=TRUE;	
}

void COtherItem::OnLChange() 
{
	SetModified(TRUE);	
	Modify=TRUE;
	
}

BOOL COtherItem::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	RegEdit Reg;
	DWORD wordbuf;
	CString String;
	
	Reg.RootKey=HKEY_CURRENT_USER;
	if (Reg.OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"))
	{
		if (Reg.ReadDword("NoDevMgrPage",wordbuf))
			m_bDisableDevicePage=wordbuf;
		if (Reg.ReadDword("NoConfigPage",wordbuf))
			m_bDisableHardsetPage=wordbuf;
		if (Reg.ReadDword("NoFileSysPage",wordbuf))
			m_bDisableFilesysBtn=wordbuf;
		if (Reg.ReadDword("NoVirtMemPage",wordbuf))
			m_bDisableVirmemBtn=wordbuf;
		
		if (Reg.ReadDword("NoDispCPL",wordbuf))
			m_bDisableDisplay=wordbuf;
		if (Reg.ReadDword("NoDispScrsavPage",wordbuf))
			m_bDisableScrPage=wordbuf;
		if (Reg.ReadDword("NoDispAppearancePage",wordbuf))
			m_bDisableGuisePage=wordbuf;
		if (Reg.ReadDword("NoDispBackgroundPage",wordbuf))
			m_bDisableBackPage=wordbuf;
		if (Reg.ReadDword("NoDispSettingsPage",wordbuf))
			m_bDisableSetPage=wordbuf;
		
		//禁止使用RegEdit
		if (Reg.ReadDword("DisableRegistryTools",wordbuf))
			m_bDisableUseregedit=wordbuf;
	}
	//禁止使用MS-DOS
	if (Reg.GetDwordValue(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\WinOldApp","Disabled",wordbuf))
		m_bDisableUsedos=wordbuf;
	//关闭“无反应应用程序”的等待时间
	if (Reg.GetStringValue(HKEY_CURRENT_USER,"Control Panel\\desktop","WaitToKillAppTimeOut",String))
		m_sCloseAppWaitTime=String;
	//IE窗口标题
	if (Reg.GetStringValue(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Internet Explorer\\Main","Window Title",String))
		m_sIETitle=String;
	//Outlook Express 邮件和新闻存放路径
	if (Reg.GetStringValue(HKEY_CURRENT_USER,"Software\\Microsoft\\Outlook Express","Store Root",String))
		m_sOutlookMailPath=String;
	UpdateData(FALSE);
	
	return TRUE; 
}

void COtherItem::OnOK() 
{
	RegEdit Reg;
	
	if (Modify)
	{
		Reg.RootKey=HKEY_CURRENT_USER;
		if (Reg.CreateKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"))
		{
			Reg.WriteDword("NoDevMgrPage",m_bDisableDevicePage);
			Reg.WriteDword("NoConfigPage",m_bDisableHardsetPage);
			Reg.WriteDword("NoFileSysPage",m_bDisableFilesysBtn);
			Reg.WriteDword("NoVirtMemPage",m_bDisableVirmemBtn);
			
			Reg.WriteDword("NoDispCPL",	m_bDisableDisplay);
			Reg.WriteDword("NoDispScrsavPage",m_bDisableScrPage);
			Reg.WriteDword("NoDispAppearancePage",m_bDisableGuisePage);				
			Reg.WriteDword("NoDispBackgroundPage",m_bDisableBackPage);
			Reg.WriteDword("NoDispSettingsPage",m_bDisableSetPage);

			
			//禁止使用RegEdit
			Reg.WriteDword("DisableRegistryTools",m_bDisableUseregedit);
			
		}
		Reg.SetDwordValue(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\WinOldApp","Disabled",m_bDisableUsedos);
		Reg.SetStringValue(HKEY_CURRENT_USER,"Control Panel\\desktop","WaitToKillAppTimeOut",m_sCloseAppWaitTime);
		{
			//IE窗口标题
			Reg.RootKey=HKEY_LOCAL_MACHINE;
			if (Reg.OpenKey("Software\\Microsoft\\Internet Explorer\\Main"))
			{
				Reg.WriteString("Window Title",m_sIETitle);
			}
		}
		{
			//Outlook Express 邮件和新闻存放路径
			Reg.RootKey=HKEY_CURRENT_USER;
			if (Reg.OpenKey("Software\\Microsoft\\Outlook Express"))
			{
				Reg.WriteString("Store Root",m_sOutlookMailPath);
			}
		}
	}  	
	CPropertyPage::OnOK();
}

//浏览选择Outlook Express 邮件和新闻存放文件夹
void COtherItem::OnBrowsepath() 
{
	CString Title;
	CString Dir;
	
	UpdateData();
	Title="请选择 Outlook Express 邮件和新闻存放文件夹:";
	CFolderDialog FolderDialog(m_sOutlookMailPath,Title);
	if (FolderDialog.DoModal()==IDOK)
	{
		GetDlgItem(IDC_OUTLOOKMAILPATH)->SetWindowText(FolderDialog.GetPathName());
	}
}

HBRUSH COtherItem::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);

	int	FrmIDs[]={IDC_DISSYSFUNFRM,IDC_DISLISTFUNFRM,IDC_DISABLEITEMFRM};

	for (int i=0;i<sizeof(FrmIDs)/sizeof(int);i++)
	{
	 if (*GetDlgItem(FrmIDs[i])==*(pWnd))
	 {
		pDC->SetTextColor(GetSysColor(COLOR_HIGHLIGHT));
		break;
	 }
	}

	return hbr;
}

void COtherItem::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	//显示隐藏状态条
	((CWinSetDlg*)AfxGetMainWnd())->ShowStatusBar();
	
	CPropertyPage::OnLButtonDblClk(nFlags, point);
}

void COtherItem::OnMouseMove(UINT nFlags, CPoint point) 
{
	CString Str;
	Str.LoadString(IDS_READY);
	((CWinSetDlg*)AfxGetMainWnd())->SetStatusText(Str);
	
	CPropertyPage::OnMouseMove(nFlags, point);
}

⌨️ 快捷键说明

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