如果一个form里有10个相同的文本框(text),怎样用,findwindow, findwindowex, getwindow, 找到指一个文本框的句柄?

解决方案 »

  1.   

    "找到指一个文本框的句柄 "    ??  给你API的参数看
    findwindowex
    hWnd1 Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找) 
    hWnd2 Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索 
    lpsz1 String,欲搜索的类名。零表示忽略 
    lpsz2 String,欲搜索的类名。零表示忽略 
     getwindow
    hwnd Long,源窗口 
    wCmd Long,指定结果窗口与源窗口的关系,它们建立在下述常数基础上: 
    GW_CHILD 寻找源窗口的第一个子窗口 
    GW_HWNDFIRST 为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口 
    GW_HWNDLAST 为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口 
    GW_HWNDNEXT 为源窗口寻找下一个兄弟窗口 
    GW_HWNDPREV 为源窗口寻找前一个兄弟窗口 
    GW_OWNER 寻找窗口的所有者 
      

  2.   

    这里是两个文本框 你可以给textbox写入特定的字符来做判断找出你要的
    Private Sub Command1_Click()
    Dim strname1 As String * 255
    Dim strname2 As String * 255a = FindWindow(0&, "form1")
    b = GetWindow(a, GW_CHILD)
    c = GetWindow(a, GW_HWNDNEXT)
    GetWindowText b, strname1, Len(strname1)
    GetWindowText c, strname2, Len(strname2)
    Print strname1
    Print strname2End Sub
      

  3.   

    用循环查就可以了(建议看看findwindowex的说明)//是查找特定的其中一个文本框。
    这个文本框的特征是什么
      

  4.   

    如果不是你自己的程序,建议这样:
    先用spy++看看文本框的CtrlId,然后用GetDlgItem获取文本框的句柄:
    Private Declare Function GetDlgItem Lib "user32" Alias "GetDlgItem" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
      

  5.   

    GetDlgItem 是怎樣用啊,請各位高手給一個例子。謝謝 CtrlId是不是control id.
      

  6.   

    如果文本框都是空的,枚举出来也不知是哪个。用WINDOWFROMPOINT来找最简单。