会员书架
首页 > 游戏竞技 > 电脑十万个为什么 > 第18部分

第18部分(第2/5 页)

目录
最新游戏竞技小说: 仙魔录:轮回之主这城有良田之霸道总裁被强爱瀚文与武杰永劫:你一个富二代竟喜欢打电竞哈利波特:过去归来之人祁同伟弃政从商,沙瑞金给我敬礼还珠格格之香妃重生约战,选我当主角?大可不必!天空之光海虎:龙之归途诗魂落魄迷踪诱尔为臣网游:重生之网游降临现实之前乱七八的文影视综清穿从夏冬春开始世界游戏,无限进化到底是不是三国上古卷轴:龙裔记事本【五夏】挚友是你们小情侣的借口老公丧尽天良,夫郎疯癫入场

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。0/6。0 下调试通过。在 NT4。0、VB6。0 下不能运行。)

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

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

procedure TForm1。Button1Click(Sender: TObject);

var hDesktop:Thand

本章未完,点击下一页继续。

目录
重生之将门毒后炮灰联盟深情缚综漫之攻略计划离婚向左再婚向右四合院之魏武光辉
返回顶部