谁有屏幕保护程序的源码?

longfine 2002-03-25 08:44:52

功能完整的,包括设置和预览(不知是否需要专门处理?).

...全文
59 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
niya3 2002-03-25
  • 打赏
  • 举报
回复
屏保就是可执行程序!

xhfjy 2002-03-25
  • 打赏
  • 举报
回复
BJ
niya3 2002-03-25
  • 打赏
  • 举报
回复
为了使保护程序能够按照用户以前设置的参数运行,采用了注册表技术来保存用户的设置信息!

OK!看懂了吧!挺简单的!
niya3 2002-03-25
  • 打赏
  • 举报
回复
其中有两个表单!一个设置参数,一个执行屏保!
niya3 2002-03-25
  • 打赏
  • 举报
回复
现以制作一个屏幕保护程序为例介绍如下:


       Name               Caption        

       Label1             运行速度

      Button1             确定

      Button2             取消

      Edit1              

在Form2中添加如下控件

     Name           Property       Value

     Timer1         Interval        10


#include "registr.hpp"

private:

TRegistry  MyReg;



   TRegistry  MyReg;


void __fastcall TForm1::Form1Show(TObject *Sender)

{

   MyReg=new TRegistry;

   MyReg->RootKey=HKEY_LOCAL_MACHINE;

   MyReg->OpenKey("Software\\MyCompany\\Remember",true);

   Edit1->Text=MyReg->ReadInteger("Interval");

}


   void __fastcall TForm1::Button1Click(TObject *Sender)

{

MyReg->WriteInteger("Intervl",Edit1->Text.ToInt( ));

MyReg->Free( );

Close( );

   }

  

   void __fastcall TForm1::Button2Click(TObject *Sender)

{

   Close( );

}

  

  Public:

  BEGIN_MESSAGE_MAP

  MESSAGE_HANDLER(WM_ERASEBKGND,TWMEraseBkgnd,WMEraseBkgnd)

  MESSAGE_HANDLER(WM_ACTIVATE,TWMActivate,WMActivate)

  MESSAGE_HANDLER(WM_SYSCOMMAND,TWMSysCommand,WMSysCommand)

  END_MESSAGE_MAP(TForm)

  int x1,x2,x3 ,x4,x5,x6;

  private:

  void __fastcall CreateParams(TCreateParams ¶ms);

  void __fastcall WMEraseBkgnd(TWMEraseBkgnd &Msg);

  void __fastcall WMActivate(TWMActivate &Msg);

  void __fastcall WMSysCommand(TWMSysCommand &Msg);Graphics::TBitmap *ScreenBitmap;


  void __fastcall TForm2::Form2Create(TObject *Sender)

{

Left = 0;        

Top = 0;        

Width = Screen->Width;

  Height= Screen->Height;

  Cursor = crNone;    

  ScreenBitmap->Width = Width;      

  ScreenBitmap->Height = Height;    

  SreenBitmap->Canvas->Brush->Color = clBlack;
ScreenBitmap->Canvas->FillRect(Rect(0,0,Width,Height));

  Timer1->Enabled = true;

  Form1->MyReg->OpenKey("Software\\MyCompany\\Remember",true);

  Timer1->Interval=Form1->MyReg->ReadInteger("Interval");

  x4=10;

  x5=20;

  x6=30;

}

  

void __fastcall TForm2::Form2Close(TObject *Sender)

{

  Timer1->Enabled = false;

   delete ScreenBitmap;

}

  

void __fastcall TForm2::Form2KeyDown(TObject *Sender, WORD &Key,

TShiftState Shift)

{

  Close( );

MyReg->Fee( );

}

void __fastcall TForm2::Form2MouseDown(TObject *Sender, TMouseButton
Button,

TShiftState Shift, int X, int Y)

{

  Close( );

MyReg->Free( );

}

void __fastcall TForm2::Form2MouseMove(TObject *Sender, TShiftState Shift,
int X,

int Y)

{

  Close( );

MyReg->Free ( );

}


void __fastcall TForm2::WMEraseBkgnd(TWMEraseBkgnd &Msg)

{          

  Msg.Result = false; file:

}

  

void __fastcall TForm2::WMActivate(TWMActivate &Msg)

{

   if(Msg.Active == false)

  Close();    

}

  

void __fastcall TForm1::WMSysCommand(TWMSysCommand &Msg)

{                

  if(Msg.CmdType == SC_SCREENSAVE)

  Msg.Result = true;

  else

   TForm::Dispatch(&Msg);

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

  

  x1=Random(Screen.Height);

  x2=Random(Screen.Weight);

  x3=Random(Screen.Height);

  Canvas->pen->Color=RGB(0,0,0);

   Canvas->Pen->Width=10;

  Canvas->Brush->Color=RGB(0,0,0);

  Canvas->Ellipse(x4,x5,abs(x4-x6),abs(x5-x6));

  Canvas->Pen->Color=RGB(Ranndom(255),Random(255),Random(255));

  Canvas->Pen->Width=10;

  Canvas->Brush->Color=RGB(Ranndom(255),Random(255),Random(255));

  Canvas->Ellipse(x1,x2,abs(x1-x3),abs(x2-x3));

  x4=x1;

  x5=x2;

  x6=x3;

  }

  

  void __fastcall TForm1::FormPaint(TObject *Sender)

{

   Canvas->Draw(0,0,ScreenBitmap);

}
kingcaiyao 2002-03-25
  • 打赏
  • 举报
回复
以前的贴子有。
dycdyc123 2002-03-25
  • 打赏
  • 举报
回复
你可以搜索一下!

有这样的帖子!

你是程序猪吗?
NowCan 2002-03-25
  • 打赏
  • 举报
回复
http://go5.163.com/nowcan/tech_bcb_mmi.htm

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧