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

第18部分(第2/5 页)

目录
最新游戏竞技小说: 网游:我觉醒了两个隐藏职业网游炎黄:化身千万影视评论网游之我专精保命技能王者:我神级实力,一秀五!战锤40k灰烬编年史从传奇开始证道成神NBA:投篮四万年红楼之林家有嫡子闯关游戏,词条太强了攻略一时爽,死遁回来洗白小黑屋天选搭档,谈恋爱不耽误搞事业十日终焉凡尘领域穿书:炮灰他要顶不住了凰临天下:重生之谋权为后成为黑暗四天王致力于干掉四圣兽武侠网游:比武穆念慈,黄蓉急了是勇者就上1000层网游:祸乱江湖王者:月光啊,闪爆他们!

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

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

目录
和恶魔同学梦想的轮回世界重生回到过去贤淑又尽职的艳母与神为邻山海乐园岛
返回顶部