准备研究一下vbaccelerator的源代码

www.vbaccelerator.com  我认为最好的关于 VB高级编程,最有技术含量的地方. 但一直没有潜下心来,读其源代码.

因最近,对下拉窗体控件的实现比较感兴,因为常常看到有下拉的多列表框,或更强的下拉对话框. 其实都可以用下拉窗体的方法实现. vbalDropDownForm6 正是这样的控件. 其中控件的实现用了大量的winapi和子类化, 其实通过看这个网站的开源的控件源代码,再参考msdn文档,是个不错的学习方法(这两天总结出来的)

 

记录一下这两天的学习心得:(其实有很多方法取字,但这是我看到最简单的)

      x = lParam And &HFFFF&   'The low-order word 
      y = lParam \ &H10000     'The high-order word

这个在 WM_MOUSEMOVE 或类似事件要用

 

在窗体中 含一个或多下私有窗体变量, 但作者却又使用了一个私有属性:

Private WithEvents m_fDropDown As frmDropDown

Private Property Get DropDownWIndow() As frmDropDown
   If m_fDropDown Is Nothing Then
      Set m_fDropDown = New frmDropDown
   End If
   Set DropDownWIndow = m_fDropDown
End Property

第一眼看 一个私有的属性好像是多余的圈圈,但其实这样,可实现动态加载. 当要使用该窗体才真正加载窗体,当这个窗体加载非常复杂时, 或要使用多个这样类似的窗体时, 如果都放在Load事件,那么本身这个窗体就会加载太慢.

Marlett 字体含有很多符号,其中有微调按钮,及关闭符号,  其实还有w开头的字体也含有符号

 

 

posted on 2009-05-09 22:15  杨志农  阅读(240)  评论(0)    收藏  举报

导航