用C++Builder实现桌布自动更新

出处:Examlink收集整理 作者:唐易龙 日期:2007年06月08日 15时29分
   
  
  //设置桌布
  
  SystemParametersInfo(SPI_SETDESKWALLPAPER,0,ListBox1->Items->Strings[index].c_str(),
   SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
  
  }
  
  else
  
  {
  
  //设置桌布
  
  SystemParametersInfo(SPI_SETDESKWALLPAPER,0,ListBox1->Items->Strings[index].c_str(),
   SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
  
  }
  
  //重建系统缓存
  
  RebuildIconCache();
  
  index++;
  
  }
  
  就这样,我们就完成了桌布自动更换的功能,是不是很简单,不过由于它受限于BMP位图格式,这一点总是使得桌布的爱好者十分苦恼.我们能不能让它支持其它格式的图形文件呢?当然可以,原理是这样的,在设置桌布之前,现将其它格式的文件转换为位图,在用SystemParametersInfo函数设置桌布即可搞定.
  
  JPEG格式转换为位图:
  
  #include
  
  bool __fastcall TForm1::JPEGToBMP(AnsiString jpegFile,AnsiString bmpFile)
  {
   //TODO: Add your source code here
  
   TJPEGImage *jpeg = new TJPEGImage();
   jpeg->LoadFromFile(jpegFile);
   Graphics::TBitmap *bitmap = new Graphics::TBitmap();
   try {
  bitmap->Assign(jpeg);
  bitmap->SaveToFile(bmpFile);
   }
  __finally {
   delete jpeg;
   delete bitmap;
  }
  return true;
  }    
最后更新时间:2008-03-28 12:39:15
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程