1、背景界面替换原理
xp不同win7,设置比较复杂,没有现成的接口可以调用。大家可以尝试一下,XP是桌面是什么图片,那么锁屏的时候就是什么背景。因此,设置xp锁屏背景,只需要在锁屏时,动态替换桌面背景即可(这里背景的替换会有点延时的),然后解锁时,恢复之前的桌面背景即可,这里你必须小心处理各种事件,否则,之前的桌面可能不能恢复成功。
BOOL CXPDesktopUtil::SetWallpaper(LPTSTR lpPicFile, DWORD dwStyle)
{
HRESULT hr;
IActiveDesktop* pIAD; //创建接口的实例
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_ActiveDesktop,NULL,CLSCTX_INPROC_SERVER,IID_IActiveDesktop,(void**)&pIAD);
if(!SUCCEEDED(hr))
{
return FALSE;
}
//将文件名改为宽字符串,这是IActiveDesktop::SetWallpaper的要求
WCHAR wszWallpaper[MAX_PATH];
MultiByteToWideChar(CP_ACP,0,lpPicFile,-1,wszWallpaper,MAX_PATH);
//设置墙纸
hr = pIAD-> SetWallpaper(wszWallpaper, 0);
if(!SUCCEEDED(hr))
{
return TRUE;
}
//设置墙纸的样式
WALLPAPEROPT wpo;
wpo.dwSize = sizeof(wpo);
wpo.dwStyle = dwStyle;
hr = pIAD->SetWa