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

📄 mypropertypage1.cpp

📁 mytoolpad 源码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
#include "stdafx.h"
#include "resource.h"
#include "OrganizeInifile.h"
#include "CalendarConvert.h"
#include "shlobj.h"
#include "io.h"
#include "MyPropertyPage1.h"
#include "ChangePassword.h"
#include "MyPropertySheet.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

extern CMyPropertySheet *m_sheet;


IMPLEMENT_DYNCREATE(CMyPropertyPage1, CPropertyPage)
IMPLEMENT_DYNCREATE(CMyPropertyPage2, CPropertyPage)
IMPLEMENT_DYNCREATE(CMyPropertyPage3, CPropertyPage)
IMPLEMENT_DYNCREATE(CMyPropertyPage4, CPropertyPage)



CMyPropertyPage1::CMyPropertyPage1() : CPropertyPage(CMyPropertyPage1::IDD)
{
	//{{AFX_DATA_INIT(CMyPropertyPage1)
	m_wallpaper = _T("");
	m_exefile = _T("");
	m_error = _T("");
	m_ondesk = FALSE;
	m_onstart = FALSE;
	m_onstatus = FALSE;
	m_shortname = _T("");
	//}}AFX_DATA_INIT

	m_wallmode=0;
}

CMyPropertyPage1::~CMyPropertyPage1()
{
}

void CMyPropertyPage1::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyPropertyPage1)
	DDX_Control(pDX, IDC_DELWALLPAPER, m_delctrl);
	DDX_Control(pDX, IDC_BROWSEWALLPAPER, m_ctrl2);
	DDX_Control(pDX, IDC_BROWSEEXECUTE, m_ctrl1);
	DDX_Control(pDX, IDC_SHORTNAME, m_shortnamectrl);
	DDX_Control(pDX, IDC_SHORTCUTTREE, m_shortctrl);
	DDX_Control(pDX, IDC_CENTER, m_centerctrl);
	DDX_Control(pDX, IDC_TILE, m_tilectrl);
	DDX_Control(pDX, IDC_ONSTATUSBAR, m_onstatusctrl);
	DDX_Control(pDX, IDC_ONSTARTMENU, m_onstartctrl);
	DDX_Control(pDX, IDC_ONDESK, m_ondeskctrl);
	DDX_Control(pDX, IDC_CREATESHORTCUT, m_createshort);
	DDX_Control(pDX, IDC_SETWALLPAPER, m_setpaper);
	DDX_Text(pDX, IDC_WALLPAPER, m_wallpaper);
	DDX_Text(pDX, IDC_EXECUTEFILE, m_exefile);
	DDX_Text(pDX, IDC_ERRORPROMPT, m_error);
	DDX_Check(pDX, IDC_ONDESK, m_ondesk);
	DDX_Check(pDX, IDC_ONSTARTMENU, m_onstart);
	DDX_Check(pDX, IDC_ONSTATUSBAR, m_onstatus);
	DDX_Text(pDX, IDC_SHORTNAME, m_shortname);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMyPropertyPage1, CPropertyPage)
	//{{AFX_MSG_MAP(CMyPropertyPage1)
	ON_BN_CLICKED(IDC_BROWSEWALLPAPER, OnBrowsewallpaper)
	ON_BN_CLICKED(IDC_BROWSEEXECUTE, OnBrowseexecute)
	ON_EN_CHANGE(IDC_WALLPAPER, OnChangeWallpaper)
	ON_BN_CLICKED(IDC_SETWALLPAPER, OnSetwallpaper)
	ON_BN_CLICKED(IDC_DELWALLPAPER, OnDelwallpaper)
	ON_BN_CLICKED(IDC_CREATESHORTCUT, OnCreateshortcut)
	ON_BN_CLICKED(IDC_DELETESHORTCUT, OnDeleteshortcut)
	ON_BN_CLICKED(IDC_REFRESH, OnRefresh)
	ON_EN_CHANGE(IDC_EXECUTEFILE, OnChangeExecutefile)
	ON_BN_CLICKED(IDC_CENTER, OnCenter)
	ON_BN_CLICKED(IDC_TILE, OnTile)
	ON_EN_CHANGE(IDC_SHORTNAME, OnChangeShortname)
	ON_BN_CLICKED(IDC_ONDESK, OnOndesk)
	ON_BN_CLICKED(IDC_ONSTARTMENU, OnOnstartmenu)
	ON_BN_CLICKED(IDC_ONSTATUSBAR, OnOnstatusbar)
	ON_NOTIFY(NM_RCLICK, IDC_SHORTCUTTREE, OnRclickShortcuttree)
	ON_NOTIFY(TVN_KEYDOWN, IDC_SHORTCUTTREE, OnKeydownShortcuttree)
	ON_NOTIFY(TVN_ENDLABELEDIT, IDC_SHORTCUTTREE, OnEndlabeleditShortcuttree)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()




CMyPropertyPage2::CMyPropertyPage2() : CPropertyPage(CMyPropertyPage2::IDD)
{
	//{{AFX_DATA_INIT(CMyPropertyPage2)
	m_content =_T("");
	m_filename=_T("");
	m_index = 0;
	m_password=_T("");
	m_sindex = 0;
	m_searchtitle=_T("");
	m_error = _T("");
	m_title = _T("");
	//}}AFX_DATA_INIT

	m_DataFile=NULL;
	m_passright=FALSE;
	m_haveinit=FALSE;
	m_pitchitems=0;
	m_filename=AfxGetApp()->GetProfileString("系统配置","数据文件","");
	if(!FileExist(m_filename))
		m_filename=_T("");
}

CMyPropertyPage2::~CMyPropertyPage2()
{
}

void CMyPropertyPage2::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyPropertyPage2)
	DDX_Control(pDX, IDC_BROWSE, m_ctrl2);
	DDX_Control(pDX, IDC_ADDITEM, m_ctrl1);
	DDX_Control(pDX, IDC_TITLE, m_titlectrl);
	DDX_Control(pDX, IDC_SEARCHTITLE, m_searchtitlectrl);
	DDX_Control(pDX, IDC_SEARCHSPIN, m_sindexspin);
	DDX_Control(pDX, IDC_SEARCHINDEX, m_sindexctrl);
	DDX_Control(pDX, IDC_SEARCH, m_searchctrl);
	DDX_Control(pDX, IDC_NEXT, m_next);
	DDX_Control(pDX, IDC_LAST, m_last);
	DDX_Control(pDX, IDC_INDEX, m_indexctrl);
	DDX_Control(pDX, IDC_DELETEITEM, m_deletectrl);
	DDX_Control(pDX, IDC_CONTENT, m_contentctrl);
	DDX_Control(pDX, IDC_CHANGEPASS, m_changepass);
	DDX_Control(pDX, IDC_ADDDEC, m_indexspin);
	DDX_Text(pDX, IDC_CONTENT, m_content);
	DDX_Text(pDX, IDC_FILENAME, m_filename);
	DDX_Text(pDX, IDC_INDEX, m_index);
	DDX_Text(pDX, IDC_PASSWORD, m_password);
	DDX_Text(pDX, IDC_SEARCHINDEX, m_sindex);
	DDX_Text(pDX, IDC_SEARCHTITLE, m_searchtitle);
	DDX_Text(pDX, IDC_SHOWERROR, m_error);
	DDX_Text(pDX, IDC_TITLE, m_title);
	//}}AFX_DATA_MAP

	m_haveinit=TRUE;
}


BEGIN_MESSAGE_MAP(CMyPropertyPage2, CPropertyPage)
	//{{AFX_MSG_MAP(CMyPropertyPage2)
	ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
	ON_BN_CLICKED(IDC_SEARCH, OnSearch)
	ON_BN_CLICKED(IDC_ADDITEM, OnAdditem)
	ON_BN_CLICKED(IDC_DELETEITEM, OnDeleteitem)
	ON_BN_CLICKED(IDC_LAST, OnLast)
	ON_BN_CLICKED(IDC_NEXT, OnNext)
	ON_EN_CHANGE(IDC_INDEX, OnChangeIndex)
	ON_EN_CHANGE(IDC_SEARCHTITLE, OnChangeSearchtitle)
	ON_EN_CHANGE(IDC_TITLE, OnChangeTitle)
	ON_EN_CHANGE(IDC_CONTENT, OnChangeContent)
	ON_EN_CHANGE(IDC_FILENAME, OnChangeFilename)
	ON_EN_CHANGE(IDC_PASSWORD, OnChangePassword)
	ON_EN_CHANGE(IDC_SEARCHINDEX, OnChangeSearchindex)
	ON_BN_CLICKED(IDC_CHANGEPASS, OnChangepass)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


CEverydayTask::CEverydayTask()
{
	m_aliasname=_T("请您输入别名");
	m_content=_T("请您在此处输入提醒信息");
	SYSTEMTIME m_time;
	GetLocalTime(&m_time);

	CCalendarConvert m_cal;
	CALENDAR m_first(m_time.wYear,m_time.wMonth,m_time.wDay);
	CALENDAR m_this=m_cal.GetDateAfterDays(m_first,10);
	m_year=m_this.year;
	m_month=m_this.month;
	m_day=m_this.day;
	m_days=2;
	m_hour=m_time.wHour;
	m_minute=m_time.wMinute;
	m_over=TRUE;
}

void CEverydayTask::FromFile(CFile& m_file)
{
	int  m_len=0;
	m_file.Read((char *)&m_len,sizeof(int));
	char * m_buffer=new char[m_len+1]; 
	memset(m_buffer,0,m_len+1);
	m_file.Read(m_buffer,m_len);
	m_aliasname=_T(m_buffer);
	delete m_buffer;

	m_file.Read((char *)&m_len,sizeof(int));
	m_buffer=new char[m_len+1]; 
	memset(m_buffer,0,m_len+1);
	m_file.Read(m_buffer,m_len);
	m_content=_T(m_buffer);
	delete m_buffer;

	m_file.Read((char *)&m_year,sizeof(int));
	m_file.Read((char *)&m_month,sizeof(int));
	m_file.Read((char *)&m_day,sizeof(int));
	m_file.Read((char *)&m_days,sizeof(int));
	m_file.Read((char *)&m_hour,sizeof(int));
	m_file.Read((char *)&m_minute,sizeof(int));
	m_file.Read((char *)&m_over,sizeof(int));
}

void CEverydayTask::ToFile(CFile& m_file)
{
	int  m_len=m_aliasname.GetLength();
	m_file.Write((char *)&m_len,sizeof(int));
	char * m_buffer=m_aliasname.GetBuffer(m_len);
	m_file.Write(m_buffer,m_len);

	m_len=m_content.GetLength();
	m_file.Write((char *)&m_len,sizeof(int));
	m_buffer=m_content.GetBuffer(m_len);
	m_file.Write(m_buffer,m_len);

	m_file.Write((char *)&m_year,sizeof(int));
	m_file.Write((char *)&m_month,sizeof(int));
	m_file.Write((char *)&m_day,sizeof(int));
	m_file.Write((char *)&m_days,sizeof(int));
	m_file.Write((char *)&m_hour,sizeof(int));
	m_file.Write((char *)&m_minute,sizeof(int));
	m_file.Write((char *)&m_over,sizeof(int));
}

BOOL CEverydayTask::IsOverDate()
{
	SYSTEMTIME m_time;
	GetLocalTime(&m_time);

	CCalendarConvert m_cal;
	CALENDAR m_newday,m_oldday;
	m_cal.MakeCalendar(&m_newday,m_time.wYear,m_time.wMonth,m_time.wDay);
	m_cal.MakeCalendar(&m_oldday,m_year,m_month,m_day);
	return (m_cal.CompareTwoDate(m_newday,m_oldday)>0);
}

BOOL CEverydayTask::AtLimited()
{
	if(IsOverDate())
		return FALSE;

	SYSTEMTIME m_time;
	GetLocalTime(&m_time);
	CCalendarConvert m_cal;
	CALENDAR m_newday,m_oldday;
	m_cal.MakeCalendar(&m_newday,m_time.wYear,m_time.wMonth,m_time.wDay);
	m_cal.MakeCalendar(&m_oldday,m_year,m_month,m_day);
	if(m_cal.GetGongDays(m_newday,m_oldday)<=m_days)
		return TRUE;
	return FALSE;
}

BOOL CEverydayTask::ReachTime()
{
	if(!AtLimited())
		return FALSE;

	SYSTEMTIME m_time;
	GetLocalTime(&m_time);
	BOOL m_reach=FALSE;
	if(m_time.wHour==m_hour && m_time.wMinute==m_minute)
		m_reach=TRUE;
	return m_reach;
}

BOOL CEverydayTask::KeepInQuene()
{
	if(IsOverDate() && m_over)
		return FALSE;
	return TRUE;
}




CMyPropertyPage3::CMyPropertyPage3() : CPropertyPage(CMyPropertyPage3::IDD)
{
	//{{AFX_DATA_INIT(CMyPropertyPage3)
	m_aliasname = _T("");
	m_content = _T("");
	m_over =FALSE;
	m_day  =0;
	m_month=0;
	m_year =0;
	m_days =0;
	m_hour =0;
	m_minute=0;
	//}}AFX_DATA_INIT

	SYSTEMTIME m_stime;
	GetLocalTime(&m_stime);
	m_year =(int)m_stime.wYear;
	m_month=(int)m_stime.wMonth;
	m_day  =(int)m_stime.wDay;
	m_hour =(int)m_stime.wHour;
	m_minute=(int)m_stime.wMinute;

	m_tasks=NULL;
	m_curindex=-1;
}

CMyPropertyPage3::~CMyPropertyPage3()
{
}

void CMyPropertyPage3::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyPropertyPage3)
	DDX_Control(pDX, IDC_ADDNOTICE, m_ctrl1);
	DDX_Control(pDX, IDC_WARNMINUTE, m_minutectrl);
	DDX_Control(pDX, IDC_WARNHOUR, m_hourctrl);
	DDX_Control(pDX, IDC_OVERDELETE, m_overctrl);
	DDX_Control(pDX, IDC_DAYS, m_daysctrl);
	DDX_Control(pDX, IDC_DATEDAY, m_dayctrl);
	DDX_Control(pDX, IDC_DATEMONTH, m_monthctrl);
	DDX_Control(pDX, IDC_DATEYEAR, m_yearctrl);
	DDX_Control(pDX, IDC_NOTICECONTENT, m_contentctrl);
	DDX_Control(pDX, IDC_ALIASNAME, m_aliasctrl);
	DDX_Control(pDX, IDC_DELETENOTICE, m_delctrl);
	DDX_Control(pDX, IDC_TASKLIST, m_tasklist);
	DDX_Text(pDX, IDC_ALIASNAME, m_aliasname);
	DDX_Text(pDX, IDC_NOTICECONTENT, m_content);
	DDX_Check(pDX, IDC_OVERDELETE, m_over);
	DDX_Text(pDX, IDC_DATEDAY, m_day);
	DDV_MinMaxInt(pDX, m_day, 1, 31);
	DDX_Text(pDX, IDC_DATEMONTH, m_month);
	DDV_MinMaxInt(pDX, m_month, 1, 12);
	DDX_Text(pDX, IDC_DATEYEAR, m_year);
	DDX_Text(pDX, IDC_DAYS, m_days);
	DDV_MinMaxInt(pDX, m_days, 0, 50);
	DDX_Text(pDX, IDC_WARNHOUR, m_hour);
	DDV_MinMaxInt(pDX, m_hour, 0, 23);
	DDX_Text(pDX, IDC_WARNMINUTE, m_minute);
	DDV_MinMaxInt(pDX, m_minute, 0, 59);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMyPropertyPage3, CPropertyPage)
	//{{AFX_MSG_MAP(CMyPropertyPage3)
	ON_BN_CLICKED(IDC_ADDNOTICE, OnAddnotice)
	ON_BN_CLICKED(IDC_DELETENOTICE, OnDeletenotice)
	ON_LBN_SELCHANGE(IDC_TASKLIST, OnSelchangeTasklist)
	ON_EN_CHANGE(IDC_ALIASNAME, OnChangeAliasname)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


CMyPropertyPage4::CMyPropertyPage4() : CPropertyPage(CMyPropertyPage4::IDD)
{
	SYSTEMTIME m_sys;
	GetLocalTime(&m_sys);

	//{{AFX_DATA_INIT(CMyPropertyPage4)
	m_time   = _T("");
	m_ganzhi = _T("");
	m_gongyear=m_sys.wYear;
	m_nongyear=m_sys.wYear;
	//}}AFX_DATA_INIT

	m_gongday=m_sys.wDay;
	m_gong.FillThis(m_gongyear,m_sys.wMonth,m_gongday);
	CALENDAR m_nongli=m_cal.ConvertToNongLi(m_gong);
	m_nong.year=m_nongli.year;
	m_nong.month=m_nongli.month;
	m_nong.day=m_nongli.day;
	m_nongyear=m_nong.year;
	m_nongday=m_nong.day;
		
	m_memdc=NULL;
	m_oldbit=NULL;
	m_oldpen=NULL;
	m_itemw=16;
	m_itemh=16;
}

CMyPropertyPage4::~CMyPropertyPage4()
{
	ReleaseMemdc();
}

void CMyPropertyPage4::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyPropertyPage4)
	DDX_Control(pDX, IDC_NONGRECT, m_nongrect);
	DDX_Control(pDX, IDC_GONGRECT, m_gongrect);
	DDX_Control(pDX, IDC_NONGMONTH, m_nongmonth);
	DDX_Control(pDX, IDC_GONGMONTH, m_gongmonth);
	DDX_Text(pDX, IDC_TIME, m_time);
	DDX_Text(pDX, IDC_GANZHI, m_ganzhi);
	DDX_Text(pDX, IDC_GONGYEAR, m_gongyear);
	DDX_Text(pDX, IDC_NONGYEAR, m_nongyear);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMyPropertyPage4, CPropertyPage)
	//{{AFX_MSG_MAP(CMyPropertyPage4)
	ON_WM_TIMER()
	ON_WM_PAINT()
	ON_EN_CHANGE(IDC_GONGYEAR, OnChangeGongyear)
	ON_EN_CHANGE(IDC_NONGYEAR, OnChangeNongyear)
	ON_WM_LBUTTONDOWN()
	ON_CBN_SELCHANGE(IDC_GONGMONTH, OnSelchangeGongmonth)
	ON_CBN_SELCHANGE(IDC_NONGMONTH, OnSelchangeNongmonth)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()






BOOL CMyPropertyPage1::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();

	m_tooltip.Create(this);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_WALLPAPER),"请您输入新墙纸文件名");
	m_tooltip.AddTool(GetDlgItem(IDC_BROWSEWALLPAPER),"浏览墙纸文件");
	m_tooltip.AddTool(GetDlgItem(IDC_SETWALLPAPER),"设置新墙纸");
	m_tooltip.AddTool(GetDlgItem(IDC_DELWALLPAPER),"删除当前墙纸");
	m_tooltip.AddTool(GetDlgItem(IDC_CENTER),"置墙纸于屏幕中央(不放缩)");
	m_tooltip.AddTool(GetDlgItem(IDC_TILE),"置墙纸于满屏幕(重叠铺放)");
	m_tooltip.AddTool(GetDlgItem(IDC_EXECUTEFILE),"要创建快捷方式的可执行文件名");
	m_tooltip.AddTool(GetDlgItem(IDC_BROWSEEXECUTE),"寻找可执行文件");
	m_tooltip.AddTool(GetDlgItem(IDC_SHORTNAME),"快捷方式全名");
	m_tooltip.AddTool(GetDlgItem(IDC_CREATESHORTCUT),"创建快捷方式");
	m_tooltip.AddTool(GetDlgItem(IDC_ONDESK),"将快捷方式放到桌面上");
	m_tooltip.AddTool(GetDlgItem(IDC_ONSTARTMENU),"将快捷方式放到Windows启动菜单");
	m_tooltip.AddTool(GetDlgItem(IDC_ONSTATUSBAR),"将快捷方式放到Windows状态栏");
	m_tooltip.AddTool(GetDlgItem(IDC_SHORTCUTTREE),"Windows程序组快捷方式列表");

	InitPanel();
	EnablePanel();
	return TRUE;
}

void CMyPropertyPage1::ShortcutToTree()
{
	m_shortctrl.DeleteAllItems();

	HTREEITEM m_root=CreateTree(m_shortctrl,"我的电脑");
	HTREEITEM m_child=InsertTreeItem(m_shortctrl,"桌面",1000,m_root,0);
	char m_buffer[255],m_windir[255];
	GetWindowsDirectory(m_buffer,255);
	int  m_len=strlen(m_buffer);
	if(m_buffer[m_len-1]!='\\')
		strcat(m_buffer,"\\");
	wsprintf(m_windir,"%s%s",m_buffer,"Desktop");
	DirToTree(m_shortctrl,m_windir,m_child,1001);

	m_child=InsertTreeItem(m_shortctrl,"状态栏(仅Win98)",2000,m_root,0);
	wsprintf(m_windir,"%s%s",m_buffer,"Application Data\\Microsoft\\Internet Explorer\\Quick Launch");
	DirToTree(m_shortctrl,m_windir,m_child,2001);

	m_child=InsertTreeItem(m_shortctrl,"启动菜单",3000,m_root,0);
	wsprintf(m_windir,"%s%s",m_buffer,"Start Menu");
	DirToTree(m_shortctrl,m_windir,m_child,3001);
	
	m_shortctrl.Expand(m_root,TVE_EXPAND);
	m_shortctrl.Expand(m_child,TVE_EXPAND);
	m_shortctrl.SelectItem(m_child);
}

void CMyPropertyPage1::OnRefresh()
{
	ShortcutToTree();
}
void CMyPropertyPage1::InitPanel()
{
	ShortcutToTree();

	COrganizeInifile org;
	m_wallpaper=_T(org.GetStringKey(HKEY_CURRENT_USER,"Control Panel\\desktop","Wallpaper"));
	m_exefile=_T("");
	m_error=m_wallpaper;

	m_ondesk=TRUE;
	m_onstatus=TRUE;
	m_onstart=FALSE;
	m_shortname=_T("");
	CheckRadioButton(IDC_CENTER,IDC_TILE,(m_wallmode==0)?IDC_CENTER:IDC_TILE);

	UpdateData(FALSE);
}
void CMyPropertyPage1::EnablePanel()
{
	UpdateData(TRUE);
	BOOL m_enable=FileExist(m_wallpaper);
	m_setpaper.EnableWindow(m_enable);
	m_centerctrl.EnableWindow(m_enable);
	m_tilectrl.EnableWindow(m_enable);

	m_enable=FileExist(m_exefile);
	m_shortnamectrl.EnableWindow(m_enable);
	
	m_onstatusctrl.EnableWindow(m_enable&&(!m_onstart));
	m_ondeskctrl.EnableWindow(m_enable&&(!m_onstart));
	m_onstartctrl.EnableWindow(m_enable && (!(m_ondesk || m_onstatus)));

	m_enable=(m_enable && (m_shortname!=_T("")));
	m_createshort.EnableWindow(m_enable);
}

void CMyPropertyPage1::SetWallpaper(CString m_file,int m_mode)
{
	UpdateData(TRUE);
	COrganizeInifile org;
	char buffer[10];
	wsprintf(buffer,"%d",0);
	org.CreateStringKey(HKEY_CURRENT_USER,"Control Panel\\desktop","WallpaperStyle",buffer);
	wsprintf(buffer,"%d",m_mode);
	org.CreateStringKey(HKEY_CURRENT_USER,"Control Panel\\desktop","TileWallpaper",buffer);

	char * filename=m_file.GetBuffer(m_file.GetLength());

⌨️ 快捷键说明

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