您的位置:首页 >> 编程开发 >> C++Builder >> 正文
C++Builder RSS
 

C++Builder 5开发Windows下的屏保

http://www.rdxx.com 05年08月07日 21:02 编程爱好者网站 我要投稿

关键词: 屏保 , Windows , C++Builder , 开发 , UI , C++
 
E_Mail:codehunter@sohu.com
网址:http://codehunter.1yes.net
摘要:本文通过一个具体的程序演示了Windows下的屏幕保护程序的实现过程。
一. 引言
视窗系统下的屏幕保护程序是一个基于命令行(Command Line)的应用程序。当屏保
程序被调用时操作系统就用具体的命令行执行该程序。本文组织和处理了所有的命令行,包
括“/p”,“/s”,“/c”,“/a”,其中“/p”表示让屏保在预览窗口中显示;“/s”表示真正运行
屏保;“/c”表示调用设置对话框;而“/a”表示调用密码设置对话框(WinNT中无效)。本
程序尽可能简单地实现一个全功能的屏保,运行Windows的屏保设置程序时你既可以修改
密码(WinNT中无效)又可以设置图片显示的频率并把频率数值保存到注册表里。当屏保
运行时图片以你设置的频率改变显示位置。笔者还留了个作业给读者,请看图1中的选择图
片文件夹这个项目,按下浏览按钮可以设置图片的路径,笔者已经实现了浏览按钮的功能并
把得到的路径也保存到注册表中,并让屏保启动时读picdir的值,picdir等于"no"时的代码
笔者已实现了,picdir不等于"no"时的代码由读者实现。也就是让读者实现一个能把picdir
目录里的图片轮流显示的屏保程序。

二. 实现方法
首先介绍几个API函数。
WinMain函数:
int WINAPI WinMain(
        HINSTANCE hInstance, // 当前实例句柄
    HINSTANCE hPrevInstance, // 前一个实例句柄
    LPSTR lpCmdLine, // 指向命令行参数的指针(本程序要利用的参数)
    int nCmdShow  // 窗口的状态
   );
GetWindowLong函数:得到指定窗口信息的函数
    LONG GetWindowLong(
         HWND hWnd, //窗口句柄
         int nIndex  //指定返回的信息
       );
SetWindowLong函数:改变窗口属性
    LONG SetWindowLong(
    HWND hWnd, //窗口句柄
    int nIndex, // 指定要设定的值的信息
    LONG dwNewLong  // 新值
   );
SetParent函数:改变指定窗口的父窗口
   HWND SetParent(
    HWND hWndChild, //要改变父窗体的窗口句柄
    HWND hWndNewParent  //新的父窗体的句柄
   );
GetClientRect函数:得到窗口的客户区
    BOOL GetClientRect(
    HWND hWnd, // 窗口句柄
    LPRECT lpRect  //RECT结构的地址
   );
SetWindowPos函数:改变窗口的大小,位置,顶级窗口等
BOOL SetWindowPos(
HWND hWnd, // 窗口句柄
    HWND hWndInsertAfter, // 布置窗口顺序的句柄(Z order)
    int X, // horizontal position
    int Y, // vertical position
    int cx, // width
    int cy, // height
    UINT uFlags  // 窗口位置等标记
   );
SystemParametersInfo函数:访问或设置系统级的参数
    BOOL SystemParametersInfo(
    UINT uiAction, // 指定要获取或设置的系统参数
    UINT uiParam, // depends on action to be taken
    PVOID pvParam, // depends on action to be taken

上一页 下一页


 
 
标签: 屏保 , Windows , C++Builder , 开发 , UI , C++ 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站