如何设置桌面背景图(可再加分)
请问有没有api可以设置桌面背景图
有例子更好
问题点数:20、回复次数:15Top
1 楼BinaryPoet(二进制诗人)回复于 2003-06-03 20:31:43 得分 5
SystemParameterInfo()Top
2 楼ukyoking(累)回复于 2003-06-03 20:48:14 得分 5
把桌面图片设为 c:\windows\setup.bmp
::SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", SPIF_UPDATEINIFILE)
Top
3 楼commandos(孤独求胜)回复于 2003-06-03 22:24:25 得分 0
学习。Top
4 楼kane(城里人)回复于 2003-06-04 09:53:11 得分 0
试试就来Top
5 楼kane(城里人)回复于 2003-06-04 10:37:24 得分 0
如果我用的图片格式是jpg的话就不行,怎么办Top
6 楼tangwei168()回复于 2003-06-04 10:48:25 得分 5
::SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", SPIF_UPDATEINIFILE)
Top
7 楼ukyoking(累)回复于 2003-06-04 11:17:14 得分 0
用jpg那得使用活动桌面Top
8 楼kane(城里人)回复于 2003-06-04 11:20:30 得分 0
有两个问题:
1.执行::SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", SPIF_UPDATEINIFILE)语句后,但桌面图片不会更新
2.如果图片格式是jpg、gif。SystemParametersInfo返回值falseTop
9 楼kane(城里人)回复于 2003-06-04 11:51:06 得分 0
如何用活动桌面Top
10 楼TheBigNose()回复于 2003-06-04 12:18:11 得分 0
第一个问题
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\test.bmp", SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);Top
11 楼kane(城里人)回复于 2003-06-04 13:24:16 得分 0
文件名是不是只能用绝对路径,我用相对路径无法正常显示Top
12 楼TheBigNose()回复于 2003-06-04 13:50:48 得分 0
是的Top
13 楼fvv(守护者)回复于 2003-06-04 15:00:18 得分 5
在button处理函数写下列代码
CMYDLG::OnSetWall()
{
CFileDialog openBmp(TRUE,NULLNULL,OFN_HIDEREADONLY,"Bitmap Files(*.bmp)|*.bmp||",NULL);
if(openBmp.DoModal()==IDOK)
{
CString fullName;
fullName=openBmp.GetPathName();
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,(void *)(LPCTSTR)fullName,0);
}
}Top
14 楼kane(城里人)回复于 2003-06-04 15:10:28 得分 0
问题1解决了
用gif、jpg文件做桌面要使用活动桌面,怎么做?Top
15 楼ukyoking(累)回复于 2003-06-05 20:09:22 得分 0
#include <wininet.h>
#include <shlobj.h>
IActiveDesktop *pActiveDesktop;
HRESULT hr;
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_ActiveDesktop,
NULL,
CLSCTX_INPROC_SERVER,
IID_IActiveDesktop,
(void**)&pActiveDesktop);
COMPONENTSOPT comps;
comps.dwSize = sizeof comps;
comps.fEnableComponents = TRUE;
comps.fActiveDesktop = TRUE;
pActiveDesktop->SetDesktopItemOptions(&comps,0);
if (FAILED(pActiveDesktop->SetWallpaper(L"G:\\Favorites\\MyPicture\\36506.jpg",0)))
return;
pActiveDesktop->ApplyChanges(AD_APPLY_ALL|AD_APPLY_FORCE);
pActiveDesktop->Release();
CoUninitialize();Top




