借助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&) |
| 参数 | 意义 |
| hwnd | long,欲为其取得信息的窗口的句柄 |
| nindex | long,这里取gwl_wndproc,表示设置该窗口的窗口函数的地址 |
| dwnewlong | long,由nindex指定的窗口信息的新值 |
| 返回值 | long,指定数据的前一个值 |
| procold = setwindowlong(me.hwnd, gwl_wndproc, addressof windowproc) |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器