使用vb需要获得在同一窗口下两个RichEdit20A控件中其中一个的句柄,
使用spy++发现描述的样式有区别,
不知vb中如何获取这个样式值?
通过对样式的筛选可否直接获得句柄?

解决方案 »

  1.   

    两个RichEdit20A控件的句柄可直接用EnumChildWindows枚举到。要区别的话,可通过座标位置区分开来。
      

  2.   

     已经解决 分享一下,
     Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
        Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
        Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
        Private Const SWP_NOSIZE = &H1
        Private Const SWP_NOZORDER = &H4
        Private Const SWP_NOMOVE = &H2
        Private Const SWP_DRAWFRAME = &H20
        Private Const GWL_STYLE = (-16)
        Private Const WS_THICKFRAME = &H40000
        Private Const WS_DLGFRAME = &H400000
        Private Const WS_POPUP = &H80000000
        Private Const WS_CAPTION = &HC00000
        Private Const WS_SYSMENU = &H80000
        Private Const WS_MINIMIZEBOX = &H20000
        Private Const WS_MAXIMIZEBOX = &H10000
        Private Const WS_MINIMIZE = &H20000000
        Private Const WS_MAXIMIZE = &H1000000通过获得 GWL_STYLE 可以区别如下 GetWindowLong(QQHwnd, GWL_STYLE)