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

出处:Examlink收集整理 作者:唐易龙 日期:2007年06月08日 15时29分
 在C++ Builder中要实现桌布的自动更换功能,我认为主要两个关键点,其一既然要“自动”那就免不了要用到定时器,我们可以用Timer这个组件来完成,这个还好解决,第二个问题可能比较麻烦了,我们如何来设置桌布,好像BCB中并没有提供什么组件,那我们也就只好自力更生了,虽说本人只是一只菜鸟,但这个问题还是难不了我,它主要是用到了SystemParametersInfo 这个Windows API函数,它的声明如下:
  
  BOOL SystemParametersInfo(
  
   UINT uiAction, // system parameter to query or set
  
   UINT uiParam, // depends on action to be taken
   PVOID pvParam, // depends on action to be taken
   UINT fWinIni // user profile update flag
  );
  
  它是一个非常重量级的函数,主要用来设置或获得系统范围上的相关参数(如:我正在介绍的“如何设置桌布”,还有如:系统字体,屏幕分辨率等),其实光从字面上也能大概知道它的作用。如果只是简单的调用SystemParametersInfo函数的话,问题就变得简单多了,但你要总不能只使用默认的桌布样式,所以在设置桌布之前还应先设置好桌布的样式,比如:桌布的显示位置,是否填满桌面等,然后再调用SystemParametersInfo函数,这个函数会根据注册表里的桌布样式设置情况来设置实际的桌布样式。
  
  与桌布样式有关的注册表设定:(位于HKEY_CURRENT_USER\Control Panel\Desktop键)
  


  注意:
  其实,上表还漏了TileWallpaper键,这个设定值的优先级最高,即当TileWallpaper这个值为1时,不管其它参数为何值,都会将桌布填满桌面,为了简化程序,一般将其设置为0,然后在根据WallPaperStyle来设置桌布样式,这是比较明智的做法。

最后更新时间:2008-03-28 12:39:15
共4页: 上一页 1 [2] [3] [4] 下一页
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

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

考试全流程