用VB实现网络蚂蚁的拖放窗口
在netants的视图菜单中,有一个名为“拖放窗口”的菜单项。当我们需要下载文件时,我们可以通过将网页中的超链接拖动到这个“窗口”中来依次下载文件。这里我们将尝试在VB中制作这个“拖放窗口”。
第一步,让“窗口”永远出现在第一位。
因为我们在浏览网页的时候,要打开很多IE窗口,所以当然不能让这个拖拽窗口被IE窗口覆盖。这个技巧可以通过使用API函数SetWindowPos来实现。
第二步,做一个无边框窗口。(无标题栏)
因为看起来更专业,所以这种技术更容易,可以通过设置表单的BorderStyle属性来实现。
第三步,我们应该能用鼠标拖动这个窗口。
因为我们的第二个操作,因为这个窗口没有标题栏,所以只能通过API函数ReleaseCapture和SendMessage来拖动窗口。
第四步,我们想让这个窗口接受拖放。(只需拖动超链接。)
这一步最关键,但也是最简单的,只需设置表单的OLEDropMode属性。
好了,步骤完成,现在开始程序的完整代码:
Private declare函数release capture Lib " user 32 "()As Long注释:release mouse capture
Private Declare函数SendMessage Lib " user 32 " Alias " SendMessage a "(ByVal hwnd As Long、ByVal wMsg As Long、ByVal wParam As Long、LParam As Any) As Long注释:向窗口发送消息process
const ht caption = 2
const WM _ nclbutton
Const SWP _ no size = & h1
Const SWP _ no move = & H2
Const hwnd _ most =-1
Const SWP _ show window = & H40
Const str website = "你拖放的是网址,地址是"
Const strWebImage = "你拖放的是网页图片,会保存在PictureBox中"
私有声明函数setwindowpos lib" user byval y as long、byval cx as long、byval cy as long、byval w flags as long) as long注释:设置窗口大小、位置和顺序
私有子form _ load()
注意:窗口的属性是:(请在设计窗口中定义)
注意:Form1。Height = 570
注:Form1。Left = 150
注:Form1。Top = 200
注:form1.width =注释:form1 . back color = & hfffff 00
注释:form 1。BorderStyle = 1
注释:Form1。OLEDropMode = 1注释:使form1接受OLE拖放
注释:Form1。ControBox=False
SetWindowPos me.hwnd,hwnd _ most,0,0,0,0,SWP _ no move或SWP _ no size或SWP _ show window备注:使用Windows API函数SetWindowPos始终将窗口设置在前面以捕捉拖放操作
End Sub
private Sub Form _ OLEDragDrop(Data As Data object,Effect As Long,Button As Integer,Shift As Integer,x As Single,As Single)注意:拖放操作发生在
error resume next
Effect = vbdropfeffectcopy
if Data。getformat (vbcftext)然后注意:网页地址拖放
Msboxstr website+data . get data(vbcftext)
else if data . get format(vbcfdib)然后注意:你拖放的是一个网页图片
msgboxstrwebimage
end if
end sub。
private form _ dblclick()
unload me注意:双击窗口时,退出程序
End Sub
private form _ mousedown(button as integer,shift as integer,x as single,y as single)
release capture
sendmessage hwnd,WM _ nclbuttondown,htcaption,0 &注意:使窗口可以被鼠标拖动
End Sub
0条评论