资源描述:
《vc更改桌面背景》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、更改桌面背景使用IactiveDesktop对象更改Windows系统桌面背景。第一步在需要使用IActiveDesktop程序所在的C++文件中加入头文件#include第二步在StdAfx.h中插入#include位置不能搞错,否则IActiveDesktop将找不到定义#include//MFCcoreandstandardcomponents#include//正确位置#include//MFCex
2、tensions第三步创建基于对话框的VC程序yanggung,在对话框上添加按钮,添加按钮响应函数CFileDialogdlg(true,NULL,NULL,OFN_HIDEREADONLY
3、OFN_OVERWRITEPROMPT,_T("图片(*.bmp;*.jpg;*.jpeg)
4、*.bmp;*.jpg;*.jpeg
5、
6、"),this);dlg.m_ofn.lStructSize=88;if(dlg.DoModal()==IDOK){CStringstr;str=dlg.GetPathName();if
7、(SetWallpaper(str,2)){AfxMessageBox(_T("更改桌面成功!"));}}为程序添加成员函数SetWallpaperboolCYangguangDlg::SetWallpaper(CString&strPicFile,DWORDdwStyle){HRESULThr;IActiveDesktop*pIAD;//创建接口的实例CoInitialize(NULL);hr=CoCreateInstance(CLSID_ActiveDesktop,NULL,CLSCTX_INPROC_S
8、ERVER,IID_IActiveDesktop,(void**)&pIAD);if(!SUCCEEDED(hr)){returnfalse;}//将文件名改为宽字符串,这是IActiveDesktop::SetWallpaper的要求WCHARwszWallpaper[MAX_PATH];LPTSTRlpStr=strPicFile.GetBuffer(strPicFile.GetLength());MultiByteToWideChar(CP_ACP,0,lpStr,-1,wszWallpaper,MAX
9、_PATH);strPicFile.ReleaseBuffer();//设置墙纸hr=pIAD->SetWallpaper(wszWallpaper,0);if(!SUCCEEDED(hr)){returnfalse;}//设置墙纸的样式WALLPAPEROPTwpo;wpo.dwSize=sizeof(wpo);wpo.dwStyle=dwStyle;hr=pIAD->SetWallpaperOptions(&wpo,0);if(!SUCCEEDED(hr)){returnfalse;}//应用墙纸的设置h
10、r=pIAD->ApplyChanges(AD_APPLY_ALL);if(!SUCCEEDED(hr)){returnfalse;}//释放接口的实例pIAD->Release();CoUninitialize();returntrue;}//strPicFile是图像文件名,支持BMPJPEGGIF等格式//dwStyle是墙纸的样式//WPSTYLE_CENTER居中0//WPSTYLE_TILE平铺1//WPSTYLE_STRETCH拉伸2//WPSTYLE_MAX3