荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jek (好好学习天天向上), 信区: Program
标  题: 用BCB编一个“桌面写字板”
发信站: BBS 荔园晨风站 (Fri Mar 17 02:33:40 2000), 转信

用BCB编一个“桌面写字板”


前段时间,我在网上发现一个很有趣的小程序,名字就叫“桌面写字板”。该程序的功能
很有意思:当程序运行后,它就显示当前桌面,但是在这个桌面上你什么都做不了,只能
按住鼠标左键在桌面上写字、画图,除非你有密码。它很适合用于你暂时离开计算机时,
用来保护你的计算机不被别人乱动。
  下面我们就来看看这个程序是怎么实现的。
  打开C++Builder,新建一个工程。然后在Unit1.h的public部分添加以下代码。
  int x1,y1;
  把Form1的BorderStyle和WindowState属性分别改为bsNone和wsMaximized。增加一个
TImage控件Image1。
  在Unit1.cpp中添加以下代码。
  #include
  #pragma hdrstop
  #include “Unit1.h"
  #pragma package(smart_init)
  #pragma resource “*.dfm"
  TForm1 *Form1;
  __fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
  {
  }
  void __fastcall TForm1::FormCreate(TObject *Sender)
  {
   void *dsdc;
  void *dxwnd;
   Form1->Height=Screen->Height;
  Form1->Width=Screen->Width;
  Image1->Top=0;
  Image1->Left=0;
  Image1->Height=Form1->Height;
  Image1->Width=Form1->Width;
  dxwnd=GetDesktopWindow();//取得桌面句柄
  dsdc=GetDC(dxwnd);
  BitBlt(Image1->Canvas->Handle,0,0,Form1->Width,Form1->Height,dsdc,0,0,
                                                                SRCCOPY);
  ReleaseDC(dxwnd,dsdc);
  x1=-1;
  y1=-1;
  SystemParametersInfo(SPI_SCREENSAVERRUNNING,true,(void *)1,0);//禁用系统
                                                                        热键
  }
  void __fastcall TForm1::Image1MouseMove(TObject *Sender,
                                                        TShiftState Shift,
  int X, int Y)//在桌面上做图,写字
  {
  if(Shift.Contains(ssLeft))
  {
  if(x1==-1&&y1==-1)
  {
  x1=X;
  y1=Y;
  Image1->Canvas->Pen->Color=clRed;
  Image1->Canvas->Pen->Width=5;
  Image1->Canvas->MoveTo(x1,y1);
  Image1->Canvas->LineTo(X,Y);
  }
  else
  {
  Image1->Canvas->Pen->Color=clRed;
  Image1->Canvas->Pen->Width=5;
  Image1->Canvas->MoveTo(x1,y1);
  Image1->Canvas->LineTo(X,Y);
  x1=X;
  y1=Y;
  }
  }
  }
  void __fastcall TForm1::Image1MouseDown(TObject *Sender,
                TMouseButton Button, TShiftState Shift, int X, int Y)
  {
   if(Button==mbRight)//按鼠标右键就退出
  {
  SystemParametersInfo(SPI_SCREENSAVERRUNNING,false,(void *)1,0);//启用系统
                                                                        热键
  Close();
  }
  }
  void __fastcall TForm1::Image1MouseUp(TObject *Sender,
                        TMouseButton Button,TShiftState Shift, int X, int Y)
  {
  if(Button==mbLeft)
  {
  x1=-1;
  y1=-1;
  }
  }
  现在保存并执行它。怎么样?效果不错吧!把它偷偷地装到你朋友的电脑里,保证会
吓他一跳!当然,你还可以进一步完善它,比如加上密码功能,只有知道密码才能退出等
等。

本程序在Win97,BCB3.0中编译通过。

--
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.118]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店