在控件前 加上 控件所在的窗體名(name)

解决方案 »

  1.   

    哥们,你应当加强OOP思路的训练。GC不应当写到用户控件里作为其公共方法,因为USERCONTROL
    是个对象,你在公共模块里调用GC,那么是哪个USERCONTROL对象的GC呢?
    它的实例在哪里?所以GC应当是MODULE里的方法。那么它怎么获得你的
    USERCONTROL对象呢?很简单,通过参数传递。USERCONTROL代码:
    Private Sub UserControl_Initialize()
        Set GlobalCtl = Me
    End SubMODULE代码:(定义部分省略)
    Global GlobalCtl as UserControl1Public Function WindowProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
      If Msg = WM_VSCROLL Then
        call GC(GlobalCtl)
      End If
      WindowProc = CallWindowProc(lPrevWndProc, hWnd, Msg, wParam, ByVal lParam)
    End FunctionPublic Sub GC(Ctl as UserControl1)
      MsgBox "过程"
      '还要调用Text1的hWnd和pic的hWnd、hDC等属性
      ctl.Texthwnd   ......
    End Sub当然,这里还有点麻烦的是,凡是你要用到的USERCONTROL的
    对象,都必须把它给公布出来了。
      

  2.   

    up to  junglerover(灌木丛)
      

  3.   

    我试过在过程前加Me或Usercontrol,可是没有用。那个调用GC的语句我知道不正确。谢谢junglerover(灌木丛)这位高手。本人刚接触用户控件和用API编程,以后有很多不懂的,还要虚心向各位指教呢!
      

  4.   

    To :yuweiqiang(小余) 
    应该载应用的控件前面加上container名字.
    你用全局变量也可以,不过比较危险.最好还是改成属性.---------------------------------------------------------
    Montaque==Digitalboy==Houyongfeng==Monkey
      

  5.   

    up to  junglerover(灌木丛)我也遇到类似的问题,在编写ACTIVE DLL时,回调函数中触发不了类里面的事件(调用不了类中的函数),后来只好改成写用户控件了。TO:junglerover(灌木丛)
    不知道这位大哥能教我如何在ACTIVEDLL中处理类似的问题吗?
    谢谢!!