沸腾文学

沸腾文学>关于十万个为什么的手抄报 > 第18部分(第2页)

第18部分(第2页)

CY=1000

For  Radius=0  To  Limit

Picturel。Circle(CX;CY);Radius;RGB(Rnd*255;Rnd*255;Rnd*255)

Next  Radius

SavePicture  Picturel。Image;〃c:custom。bmp〃

End  Sub

执行此程序就会把图片框  Picture1  上的图象保存在  C:  盘根目录下  custom。bmp  图象文件中。

最后有两点需要指出:

1、在使用  SavePicture  语句之前,必须先将窗体或图片框的  AutoRedraw  属性设为  True,否则保留的将是一张空图;

2、使用  Image  属性保存的用画图命令(如  Line,Cirele,Pset  或  Print)画出来的图形总是以  BMP  文件格式保存。但在程序设计时如果使用窗体或图片框的  Picture  属性载入或在程序运行时通过  LoadPicture  函数载入的图象,使用  SavePicture  语句存储时,存储的文件格式同其载入前的文件格式一样(如  ICO  格式等)。

102;Q:在  Visual  Basic  中如何拖动窗体或控件?

A:现在的许多  windows  下的应用程序,都采用了图形化的界面,但是在这样的界面下就不能使用  Windows  原来的标题条了,否则会影响界面的美观。那么在没有标题条的情况下如何用鼠标拖动窗体或者其它的控件呢?

其实,采用  API  函数调用很容易实现,下面我们以拖动窗体  Form1  为例来具体讲一下实现方法:

1、新建立一个项目,名称为  test。vbp;

2、填加一个模块,名称为  test。bas,并且在声明部分加入以下代码:

Declare  Function  ReleaseCapture  Lib  〃user32〃  ()  As  Long

Declare  Function  SendMessage  Lib  〃user32〃  Alias  〃SendMessageA〃  (ByVal  hwnd  As  Long;  ByVal  wMsg  As  Long;  ByVal    wParam  As  Long;  lParam  As  Any)  As  Long

Public  Const  WM_SYSMAND  =  &H112

Public  Const  SC_MOVE  =  &HF012

其中  ReleaseCapture  函数是用来释放鼠标捕获的,SendMessage  函数是一个在  Windows  API  中非常重要的函数,在这里的作用是用来向  Windows  发送移动窗体的消息。WM_SYSMAND  是向  Windows  发送消息的常量。SC_MOVE  是控制移动窗体的常量。请注意:这里  SC_MOVE  的赋值是  &HF012,表示鼠标对象。

3、在窗体的  MouseDown  过程中加入以下代码:

Private  Sub  Form_MouseDown(Button  As  Integer;  Shift  As  Integer;  X  As  Single;  Y  As  Single)

ReleaseCapture

SendMessage  Me。hwnd;  WM_SYSMAND;  SC_MOVE;  0

End  Sub

其中  ReleaseCapture  函数用来释放鼠标捕获,SendMessage  函数向  Windows  发送移动窗体的消息。

4、保存并运行程序,按下鼠标,你会发现窗体会随着鼠标的移动而移动。

以上讲述了如何在  VB  中用鼠标拖动窗体,其实,控件的拖动的原理是一样的。例如以下代码可以实现图片框的拖动:

ReleaseCapture

SendMessage  Picture1。hwnd;  WM_SYSMAND;  SC_MOVE;  0

(注:以上程序在  Windows98、VB5。06。0  下调试通过。在  NT4。0、VB6。0  下不能运行。)

103;Q:用  Delphi5。0  编程实现  Windows  桌面的隐藏和显示

A:实现原理是调用  Windows  的  API  函数。程序代码如下:

procedure  TForm1。Button1Click(Sender:  TObject);

var  hDesktop:Thandle;

已完结热门小说推荐

最新标签