注册 登录
编程论坛 VB6论坛

如何取得控件句柄及控件座标?

wube 发布于 2012-10-13 01:40, 362 次点击
如何取得小红框内控件句柄和座标位置?
被这些API的组合搞昏头了()
程序代码:

Option Explicit

Dim hWnd1 As Long, hWnd2 As Long

Private Sub Command1_Click()
Dim h&
Dim Str As String
    Do
        h = FindWindowEx(hWnd1, h, vbNullString, vbNullString)
        If h <> 0 Then
            GetWindowText h, Str, 255
            Debug.Print Str & " : " & h
            List1.AddItem h
        End If
    Loop Until h = 0
End Sub

Private Sub Form_Load()
Dim h&
    hWnd1 = Shell(App.Path & "\Aprcg.exe", vbHide)
    hWnd1 = FindWindow(vbNullString, "Pattern Reverse Compiler")
    h = FindWindowEx(hWnd1, hWnd2, vbNullString, vbNullString)
End Sub

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

为啥Form_Load()的FindWindowEx取不到hWnd2
但是Command1_Click()的FindWindowEx却可以?

[ 本帖最后由 wube 于 2012-10-13 01:41 编辑 ]
5 回复
#2
wube2012-10-13 16:32
OK
#3
邵帅2012-10-13 19:55
是不是因为窗体中的控件还没有生成,在 最前面 添加 Me.Show?
#4
Artless2012-10-13 23:13
以下是引用邵帅在2012-10-13 19:55:25的发言:

是不是因为窗体中的控件还没有生成,在 最前面 添加 Me.Show?

不是的
#5
wube2012-10-14 04:57
恩....问题点在于要把
Dim h&
的声明改为全局即可
但是这样还是无法达到我要的目的
不过已经找出另一个方式解决这问题(当然还须稍做修改以符合客户需求)
这只是其中的一个阶段...剩最后2个步骤尚须克服
最后就是喂进大量资料以验证程序的稳定性

若调试成功后再把代码转到客户需求的程式中
这样就算完成该CASE的第二阶段
之后上有3个阶段还未完成
还须继续思考后续...

P.S 此问题部分答案我在CSDN已有人协助解决了
#6
wube2012-10-14 05:01
开发时程有两个月
但是客户限定一个月要交出程式雏形
因为能力不足加上观念差所以感觉是有点赶
而且一个月可不是专职开发
还有一大堆杂事要一起处理
这都算在开发时程之内
所以对我来说有点拼
不过俗话说“爱拼才会赢”
1