今天下午,我想用一下ChildWindowFromPoint函数,在vb自带的API浏览器中有两个声明,复制了一个贴进去用,说是定义具有二异性,烦请帮忙解决。vb版的人只顾抢分了,所以请vc版的高手指教。

解决方案 »

  1.   

    HWND ChildWindowFromPoint( 
    HWND hWndParent,  // handle to parent window 
    POINT Point  // structure with point coordinates 
    ); 
     
      

  2.   

    Declare Function ChildWindowFromPoint Lib "user32" (ByVal hwnd As Long, ByVal xPoint As Long, ByVal yPoint As Long) As Long 
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 
    Public Const WM_COMMAND = &H111 
    '模块 '控件自己加 
    Public Sub sendQQ() 
      On Error GoTo awf 
      If Form3.List1.ListIndex = -1 Then Exit Sub 
      Form3.List1.ListIndex = i 
      i = i + 1 
      If i > Form3.List1.ListCount - 1 Then i = 0 
      Dim attrib, attrib2, Fhawn, aaa As Long 
      attrib = FindWindow(vbNullString, "发送消息") 
      attrib2 = FindWindow(vbNullString, "对话模式") 
      If attrib <> 0 Then 
      Fhawn = attrib 
      aaa = ChildWindowFromPoint(Fhawn, 200, 150) 
      If Form3.List1.Text <> "" Then 
      SendMessage aaa, WM_SETTEXT, 1004, ByVal Form3.List1.Text 
      SendMessage attrib, WM_COMMAND, 1, 0 
      End If 
      End If 
      If attrib2 <> 0 Then 
      Fhawn = attrib2 
      aaa = ChildWindowFromPoint(Fhawn, 218, 317) 
      If Form3.List1.Text <> "" Then 
      SendMessage aaa, WM_SETTEXT, 1004, ByVal Form3.List1.Text 
      SendMessage attrib2, WM_COMMAND, 1, 0 
      End If 
      
      End If 
    awf: 
      Exit Sub 
      i = 0 
      End Sub