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

📄 mypropertypage1.cpp

📁 mytoolpad 源码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	SystemParametersInfo(SPI_SETDESKWALLPAPER,m_mode,filename,
	       SPIF_UPDATEINIFILE|SPIF_SENDWININICHANGE);
}

void CMyPropertyPage1::DelWallpaper()
{
	SystemParametersInfo(SPI_SETDESKWALLPAPER,m_wallmode,"",
	       SPIF_UPDATEINIFILE|SPIF_SENDWININICHANGE);
}

CString CMyPropertyPage1::GetShortcutPath(HTREEITEM hitem)
{
	if((hitem==NULL) || (hitem==m_shortctrl.GetRootItem()))
		return _T("");

	char windows[200];
	GetWindowsDirectory(windows,200);
	CString m_itemname,ret,middle;
	DWORD m_data=m_shortctrl.GetItemData(hitem);
	if(m_data==1000 || m_data==2000 || m_data==3000)
	{
		m_itemname=m_shortctrl.GetItemText(hitem);
		if(m_itemname.Find("桌面")!=-1)
		{
			ret=_T(windows);
			ret+=_T("\\Desktop");
		}
		if(m_itemname.Find("启动")!=-1)
		{
			ret=_T(windows);
			ret+=_T("\\Start Menu");
		}
		if(m_itemname.Find("状态")!=-1)
		{
			ret=_T(windows);
			ret+=_T("\\Application Data\\Microsoft\\Internet Explorer\\Quick Launch");
		}
		return ret;
	}

	if(m_shortctrl.ItemHasChildren(hitem))
		m_itemname=m_shortctrl.GetItemText(hitem);
	ret=m_itemname;
	HTREEITEM temp=m_shortctrl.GetParentItem(hitem);
	while(temp)
	{
		m_itemname=m_shortctrl.GetItemText(temp);
		if(m_itemname.Find("桌面")!=-1)
		{
			middle=_T(windows);
			if(ret!=_T(""))
				middle+=_T("\\Desktop\\")+ret;
			else
				middle+=_T("\\Desktop");
			ret=middle;
			break;
		}
		if(m_itemname.Find("启动菜单")!=-1)
		{
			middle=_T(windows);
			if(ret!=_T(""))
				middle+=_T("\\Start Menu\\")+ret;
			else
				middle+=_T("\\Start Menu");
			ret=middle;
			break;
		}
		if(m_itemname.Find("状态")!=-1)
		{
			middle=_T(windows);
			if(ret!=_T(""))
				middle+=_T("\\Application Data\\Microsoft\\Internet Explorer\\Quick Launch\\")+ret;
			else
				middle+=_T("\\Application Data\\Microsoft\\Internet Explorer\\Quick Launch");
			ret=middle;
			break;
		}

		if(ret!=_T(""))
			middle=m_itemname+_T("\\")+ret;
		else
			middle=m_itemname;
		ret=middle;
		temp=m_shortctrl.GetParentItem(temp);
	}
	return ret;
}

void CMyPropertyPage1::CreateShortcut(CString m_file,CString m_name)
{
	CString m_path;
	char windows[200];
	GetWindowsDirectory(windows,200);
	if(m_ondesk)
	{
		m_path=_T(windows);
		m_path+=_T("\\Desktop\\");
		m_path+=m_name;
		m_path+=_T(".lnk");
		CreateShellObjectLink(m_file.GetBuffer(m_file.GetLength()),m_name.GetBuffer(m_name.GetLength()),m_path.GetBuffer(m_path.GetLength()));
		if(!m_onstatus)
		{
			ShortcutToTree();
			return ;
		}
	}
	if(m_onstatus)
	{
		m_path=_T(windows);
		m_path+=_T("\\Application Data\\Microsoft\\Internet Explorer\\Quick Launch\\");
		m_path+=m_name;
		m_path+=_T(".lnk");
		CreateShellObjectLink(m_file.GetBuffer(m_file.GetLength()),m_name.GetBuffer(m_name.GetLength()),m_path.GetBuffer(m_path.GetLength()));
		ShortcutToTree();
		return ;
	}
	
	HTREEITEM m_item=m_shortctrl.GetSelectedItem();
	m_path=GetShortcutPath(m_item);
	m_path+=_T("\\");
	m_path+=m_name;
	m_path+=_T(".lnk");
	CreateShellObjectLink(m_file.GetBuffer(m_file.GetLength()),m_name.GetBuffer(m_name.GetLength()),m_path.GetBuffer(m_path.GetLength()));
	ShortcutToTree();
}

void CMyPropertyPage1::OnBrowsewallpaper() 
{
	CFileDialog dlg(TRUE,"*.bmp",m_wallpaper,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"图片文件 (*.bmp)|*.bmp||");
	if(dlg.DoModal()==IDOK)
	{
		m_wallpaper=dlg.GetPathName();
		m_error=m_wallpaper;
		UpdateData(FALSE);
		EnablePanel();
	}
}
void CMyPropertyPage1::OnChangeWallpaper() 
{
	EnablePanel();
	m_error=m_wallpaper;
	UpdateData(FALSE);
}
void CMyPropertyPage1::OnSetwallpaper() 
{
	UpdateData(TRUE);
	SetWallpaper(m_wallpaper,m_wallmode);
}
void CMyPropertyPage1::OnDelwallpaper() 
{
	DelWallpaper();
}


void CMyPropertyPage1::OnDeleteshortcut() 
{
	HTREEITEM hSel=m_shortctrl.GetSelectedItem();
	DeleteAllChild(m_shortctrl,hSel);
}

//删除树中当前项的所有子项
void CMyPropertyPage1::DeleteAllChild(CTreeCtrl &tree,HTREEITEM hitem)
{
	if(hitem==NULL)
		return;

	if(tree.ItemHasChildren(hitem))
	{
		HTREEITEM m_child=tree.GetChildItem(hitem);
		while(m_child)
		{
			DeleteAllChild(tree,m_child);
			m_child=tree.GetChildItem(hitem);
		}
		DeleteChild(hitem);
	}
	else
		DeleteChild(hitem);
}

BOOL CMyPropertyPage1::IsDirExist(char *buffer)
{
	BOOL ret=FALSE;
	struct _finddata_t FileBlock;
	char *findfile=new char[strlen(buffer)+10];
	wsprintf(findfile,"%s\\*.*",buffer);
	long handle=_findfirst(findfile,&FileBlock);
	if(handle>0)
		ret=TRUE;
	delete findfile;
	return ret;
}

void CMyPropertyPage1::DeleteChild(HTREEITEM hitem)
{
	CString m_path=GetShortcutPath(hitem);
	if(m_path==_T(""))
		return;

	CString m_name=m_shortctrl.GetItemText(hitem);
	m_path+="\\";
	m_path+=m_name;
	if(IsDirExist(m_path.GetBuffer(m_path.GetLength())))
		RemoveDirectory(m_path);
	else
		DeleteFile(m_path);
	m_shortctrl.DeleteItem(hitem);
}

void CMyPropertyPage1::OnCreateshortcut() 
{
	CreateShortcut(m_exefile,m_shortname);
}

void CMyPropertyPage1::OnBrowseexecute() 
{
	CFileDialog dlg(TRUE,"*.exe",m_exefile,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"执行文件 (*.exe)|*.exe||");
	if(dlg.DoModal()==IDOK)
	{
		m_exefile=dlg.GetPathName();
		m_error=m_exefile;
		UpdateData(FALSE);
		EnablePanel();
	}
}
void CMyPropertyPage1::OnChangeExecutefile() 
{
	EnablePanel();
	m_error=m_exefile;
	UpdateData(FALSE);
}


BOOL CMyPropertyPage1::FileExist(CString m_file)
{
	BOOL ret=FALSE;
	if(m_file==_T(""))
		return ret;
	HANDLE file=CreateFile(m_file,0,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
	if(file!=INVALID_HANDLE_VALUE)
	{
		CloseHandle(file);
		ret=TRUE;
	}
	return ret;
}

void CMyPropertyPage1::OnCenter() 
{
	m_wallmode=0;
}
void CMyPropertyPage1::OnTile() 
{
	m_wallmode=1;
}

BOOL CMyPropertyPage1::CreateShellObjectLink(char * sObjectPath,char *sDescription,char *sLinkPath)
{
	IShellLink * shelllink;
	CoInitialize(NULL);
	HRESULT res=CoCreateInstance(CLSID_ShellLink,NULL,
		 CLSCTX_INPROC_SERVER,IID_IShellLink,(LPVOID *)&shelllink);
	if(res==S_OK)
	{
		IPersistFile * file;
		shelllink->SetPath(sObjectPath);
		shelllink->SetDescription(sDescription);
		res=shelllink->QueryInterface(IID_IPersistFile,(void * *)&file);
	     if(res==S_OK)
		{
			WORD wstr[MAX_PATH];
			MultiByteToWideChar(CP_ACP,0,sLinkPath,-1,wstr,MAX_PATH);
			res=file->Save(wstr,TRUE);
			file->Release();
		}
	     shelllink->Release();
	}						
	CoUninitialize();
	return (res==S_OK)?TRUE:FALSE;
}

//创建树
HTREEITEM CMyPropertyPage1::CreateTree(CTreeCtrl &tree,char * text)
{
	TV_INSERTSTRUCT tci;
	tci.item.mask=TVIF_TEXT|TVIF_PARAM;
	tci.item.stateMask=0;
	tci.item.pszText=text;
	tci.item.iImage=I_IMAGECALLBACK;
	tci.item.iSelectedImage=I_IMAGECALLBACK;
	tci.item.cchTextMax=lstrlen(tci.item.pszText);
	tci.item.lParam=0;
	tci.hParent=NULL;
	tci.hInsertAfter=TVI_LAST;
	return(tree.InsertItem(&tci));
}

//插入一项到树中
HTREEITEM CMyPropertyPage1::InsertTreeItem(CTreeCtrl &tree,char * text,int index,HTREEITEM parent,int image)
{
	TV_INSERTSTRUCT tci;
	tci.item.mask=TVIF_TEXT|TVIF_PARAM;
	tci.item.stateMask=0;
	tci.item.pszText=text;
	tci.item.iImage=0;
	tci.item.iSelectedImage=image;
	tci.item.cchTextMax=lstrlen(tci.item.pszText);
	tci.item.lParam=index;
	tci.hParent=parent;
	tci.hInsertAfter=TVI_LAST;
	return(tree.InsertItem(&tci));
}

//将目录下的所有文件及子目录加入到树中
void CMyPropertyPage1::DirToTree(CTreeCtrl &tree,char *dirname,HTREEITEM root,int iden)
{
	char dir[200];
	int id=iden,ret=0;
	struct _finddata_t fileinfo;
	wsprintf(dir,"%s\\*.*",dirname);
	long handle=_findfirst(dir,&fileinfo);
	while(handle && (ret==0))
	{			
		if(fileinfo.attrib & _A_SUBDIR)
		{
			if((strcmpi(fileinfo.name,".")!=0) && (strcmpi(fileinfo.name,"..")!=0))
			{
				HTREEITEM hCur=InsertTreeItem(tree,fileinfo.name,id,root,0);
				wsprintf(dir,"%s\\%s",dirname,fileinfo.name);
				id++;
				DirToTree(tree,dir,hCur,id);
				id+=30;
			}
		}
		else
		{
			InsertTreeItem(tree,fileinfo.name,id,root,0);
			id++;
		}
		ret=_findnext(handle,&fileinfo);
	}
}

void CMyPropertyPage1::OnChangeShortname() 
{
	EnablePanel();
	m_error=m_shortname;
	UpdateData(FALSE);
}

void CMyPropertyPage1::OnOndesk() 
{
	UpdateData(TRUE);
	m_onstart=!m_ondesk;
	m_error=_T("位于桌面上");
	EnablePanel();
}
void CMyPropertyPage1::OnOnstartmenu() 
{
	UpdateData(TRUE);
	m_ondesk=!m_onstart;
	m_onstatus=!m_onstart;
	m_error=_T("位于开始菜单顶部");
	EnablePanel();
}
void CMyPropertyPage1::OnOnstatusbar() 
{
	UpdateData(TRUE);
	m_onstart=!m_onstatus;
	m_error=_T("位于状态条上(仅仅支持Win98)");
	EnablePanel();
}

void CMyPropertyPage1::OnRclickShortcuttree(NMHDR* pNMHDR, LRESULT* pResult)
{
	HTREEITEM m_item=m_shortctrl.GetSelectedItem();
	DWORD m_data=m_shortctrl.GetItemData(m_item);

	CMenu menu;
	menu.CreatePopupMenu();
	CPoint point;
	GetCursorPos(&point);

	if(m_item!=m_shortctrl.GetRootItem())
	{
		if(FileExist(m_exefile) && m_shortname!=_T("") && m_onstart)
		{
			if(m_shortctrl.ItemHasChildren(m_item) || m_data==1000 || m_data==2000 || m_data==3000)
				menu.AppendMenu(MF_ENABLED,IDC_CREATESHORTCUT,"创建快捷方式");
		}
		if(!(m_data==1000 || m_data==2000 || m_data==3000))
			menu.AppendMenu(MF_ENABLED,IDC_DELETESHORTCUT,"删除快捷方式");
	}
	menu.AppendMenu(MF_ENABLED,IDC_REFRESH,"刷新快捷方式");
	menu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
	
	*pResult = 0;
}

void CMyPropertyPage1::OnKeydownShortcuttree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	TV_KEYDOWN* pTVKeyDown=(TV_KEYDOWN*)pNMHDR;

	HTREEITEM hSel=m_shortctrl.GetSelectedItem();
	if(hSel==NULL || hSel==m_shortctrl.GetRootItem())
		return;
	DWORD m_data=m_shortctrl.GetItemData(hSel);
	if(m_data==1000 || m_data==2000 || m_data==3000)
		return;

	switch(pTVKeyDown->wVKey)
	{
	case VK_DELETE:
		OnDeleteshortcut();
		break;
	case VK_F2:
		m_shortctrl.EditLabel(hSel);
		break;
	}
	*pResult = 0;
}

void CMyPropertyPage1::OnEndlabeleditShortcuttree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;

	if(pTVDispInfo->item.pszText==0)
		return ;
	if(pTVDispInfo->item.hItem==NULL || pTVDispInfo->item.hItem==m_shortctrl.GetRootItem())
		return;
	DWORD m_data=m_shortctrl.GetItemData(pTVDispInfo->item.hItem);
	if(m_data==1000 || m_data==2000 || m_data==3000)
		return;

	CString m_path=GetShortcutPath(pTVDispInfo->item.hItem);
	CString m_oldname=m_shortctrl.GetItemText(pTVDispInfo->item.hItem);
	m_shortctrl.SetItemText(pTVDispInfo->item.hItem,pTVDispInfo->item.pszText);
	CString m_newname=m_shortctrl.GetItemText(pTVDispInfo->item.hItem);
	CString m_oldfile=m_path+_T("\\")+m_oldname;
	CString m_newfile=m_path+_T("\\")+m_newname;
	if(m_shortctrl.ItemHasChildren(pTVDispInfo->item.hItem))
		rename(m_oldfile,m_newfile);
	else
		rename(m_oldfile,m_newfile);
	
	*pResult = 0;
}








BOOL CMyPropertyPage4::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	m_tooltip.Create(this);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_GONGYEAR),"公历年份");
	m_tooltip.AddTool(GetDlgItem(IDC_GONGMONTH),"公历月份");
	m_tooltip.AddTool(GetDlgItem(IDC_NONGYEAR),"农历年份");
	m_tooltip.AddTool(GetDlgItem(IDC_NONGMONTH),"农历月份");

	NongMonthToList();
	GetAllInformation();
	m_ganzhi=m_cal.GetGanZhi(m_nong.year);
	return TRUE;
}

void CMyPropertyPage4::OnTimer(UINT nIDEvent) 
{
	KillTimer(nIDEvent);
	switch(nIDEvent)
	{
	case 100:
		SetTimer(100,1000,NULL);
		ShowTime();
		break;
	}
	CPropertyPage::OnTimer(nIDEvent);
}

BOOL CMyPropertyPage4::OnKillActive() 
{
	KillTimer(100);
	return CPropertyPage::OnKillActive();
}

BOOL CMyPropertyPage4::OnSetActive() 
{
	SetTimer(100,0,NULL);
	return CPropertyPage::OnSetActive();
}

void CMyPropertyPage4::ShowTime()
{
	SYSTEMTIME m_systime;
	GetLocalTime(&m_systime);
	int m_pass=(int)(GetTickCount()/(DWORD)1000);
	m_time.Format("%d:%d:%d,  运行%d秒(%d分)",m_systime.wHour,m_systime.wMinute,m_systime.wSecond,m_pass,m_pass/60);
	
	UpdateData(FALSE);
}

void CMyPropertyPage4::OnPaint() 
{
	CPaintDC dc(this);
	ShowPanel(dc);
}

void CMyPropertyPage4::ShowPanel(CDC & dc)
{
	ShowGongDay(dc);
	ShowNongDay(dc);
}
void CMyPropertyPage4::DrawPanel()
{
	DrawGongDay();
	DrawNongDay();
}

void CMyPropertyPage4::ShowGongDay(CDC & dc)
{
	dc.BitBlt(m_rectgong.left,m_rectgong.top,m_rectgong.Width(),
		m_rectgong.Height(),m_memdc,0,0,SRCCOPY);
}
void CMyPropertyPage4::ShowNongDay(CDC & dc)
{
	dc.BitBlt(m_rectnong.left,m_rectnong.top,m_rectnong.Width(),
		m_rectnong.Height(),m_memdc,m_rectnong.Width()+1,0,SRCCOPY);
}

void CMyPropertyPage4::DrawGongDay()
{

⌨️ 快捷键说明

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