您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > VB开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

采用API实现的文件拖放
2001-11-24· · ··yesky

上一页  1 2 3  



相关内容

什么是子类派生技术

  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


上一页  1 2 3  

■ 相关内容
 VB6.0实现系统托盘
 API实现完美的图片出现效果
 VB托盘程序详解
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!