科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VB中用API实现文件拖放

VB中用API实现文件拖放

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

借助API函数同样可以实现文件从资源管理器EXPLORE到应用程序的拖放

作者:佚名 来源:VBNEW 2007年10月15日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
附:子类派生技术

  WINDOWS运行的基础是“消息机制”,所谓的“消息”是一个唯一的值,这个值会被一个窗体或操作系统收到,它能告诉什么事件发生了以及需要采用什么样的动作来响应。这与我们人类的神经系统将感知的信息传递给大脑,而大脑发出指令给我们的身体非常相似。于是每一个窗体都具有一个消息句柄,这个机制使得所有发自于WINDOWS操作系统的消息能被接收到需要强调的是每个窗体以及每个控件,包括按钮、文本框、图片框等都具有这样的消息句柄。WINDOWS操作系统会跟踪这些消息句柄,这称为类结构中的一个WindowProc,所谓的类结构是于窗体句柄相关联的。

  当我们加入一个新的WindowProc函数而这个WindowProc与原始的窗体函数相符合的话,我们称这个窗被子类化了。换言之,如果WINDOWS操作系统发给你所在的WindowProc一个消息,而你所在的WindowProc正在响应其它的动作,这时你必须将剩余的消息传递给一个默认的WindoProc。

  如下所示: 操作系统消息-->你所在WindoProc-->默认的WindoProc而一个窗体是可以被子类化多次的,这样就产生了如下的情况:

  Windows Message Sender --> Your WindowProc --> Another WindowProc _--> Yet Another WindowProc --> Default WindowProc

  What is subclassing anyway?

  通过窗体子类化,你可以改变响应消息的顺序,也就是说,你可以把消息传递到默认的WindowProc上而不立即响应。举个例子:

  如果我们要在接收到WM_PAINT 消息后,在窗体上画出一些东西,可以用下面的语句实现:

Public Function WindowProc(Byval hWnd, Byval etc....)

 Select Case iMsg   '筛选出WM_PAINT消息
  Case SOME_MESSAGE  '如果是其他消息
   DoSomeStuff

  Case WM_PAINT  '如果是WM_PAINT 消息
   '首先把消息传递给一个默认的WindowProc
    WindowProc = CallWindowProc(procOld, hWnd, iMsg, wParam, lParam)

   DoDrawingStuff   '进行画图操作

   Exit Function   
   '因为我们已经把消息传递给默认的WindowProc,我们可以退出这个WindowProc
'
 End Select
'
End Function

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章