首页 >> 读书频道 >> 电脑 >> 采用API实现的文件拖放上
 
· 用VB建立文件关联二
· 第14章 XSL变换
· 用VB建立文件关联一
· 在VB中取得Window
· 第14章 XSL变换
· 用API函数实现文件夹列
· 利用API创建文件目录
· 用API函数遍历文件三
· API实现完美的图片出现
· API实现完美的图片出现
· API实现完美的图片出现
· 第14章 XSL变换
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

采用API实现的文件拖放上


查看有无更新版本

关键字:VB 2006-9-18

 

借助API函数CallWindowProc,DragAcceptFiles,DragQueryFile,DragFinish同样可以实现文件从资源管理器EXPLORE到应用程序的拖放,另一种方法是采用OLE拖放,可以参照趣味编程栏目的相关内容。下面我们一起来看看程序编写的过程。

对于每个需要引用的API函数,我们需要先在程序中说明,如果只在某一窗体内声明并使用它,则把它声明为Private,而如果在模块中声明,且需要在整个工程内使用它,则需要把它声明为Public。

Public Declare Function CallWindowProc& Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&) 
 Public Declare Sub DragAcceptFiles Lib "shell32.dll" (ByVal hWnd&, ByVal fAccept&) 
 Public Declare Function DragQueryFile& Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop&, ByVal iFile&,ByVal lpszFile$, ByVal cch&)
 Public Declare Sub DragFinish Lib "shell32.dll" (ByVal hDrop&) 
 Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&,ByVal nIndex&, ByVal dwNewLong&) 
 

SetWindowLong函数的作用是在窗口结构中为指定的窗口设置属性,利用它我们来改变窗口的属性参数,其中各个参数的意义如下表所示:

参数  意义  
hwnd  Long,欲为其取得信息的窗口的句柄 
nIndex  Long,这里取GWL_WNDPROC,表示设置该窗口的窗口函数的地址 
dwNewLong  Long,由nIndex指定的窗口信息的新值 
返回值 Long,指定数据的前一个值 

在默认状态下WINDOWS操作系统会指定一个窗口函数来接受和处理WINDOWS消息,而通过使用SetWindowLong函数改变窗口函数的地址使它指向我们自己写的一个函数WindowProc,这样WINDOWS消息就会转由WindowProc函数接收和处理。于是我们就能判断文件拖放的消息并进行处理。改变窗口属性的语句如下:

procOld = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProc) 


DragAcceptFiles、DragQueryFile、DragFinish三个函数的作用分别是:把某个窗口设置为接收拖放的容器、返回拖放的文件的数量和信息、终止拖放。

采用API实现的文件拖放上

[ 1 ]
采用API实现的文件拖放上 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑