能否通过windows消息,在子窗体上的某特定坐标上执行单击操作?解决方案

能否通过windows消息,在子窗体上的某特定坐标上执行单击操作?
如题:
目的是,当鼠标单击父窗体某按钮时,执行单击子窗体工具条中一“打开”按钮的操作,或执行菜单中“文件”的下拉菜单中“打开”操作。
由于菜单项和工具条按钮都没有句柄,所以:
1:我想通过用坐标定位“工具条中“打开”按钮的坐标”,然后单击的方式,执行此操作。
2:先获得菜单上“文件”的句柄,让子窗体获得焦点,然后用windows消息,执行单击操作,然后再发送键盘消息。
以上第一种想法根本我就不会。第二种我能获取“文件”的句柄,但是不能对“文件”执行单击操作。
还听 网友说,要先获取 菜单项的ID ,然后发WW_COMMAND消息,这个俺也不会...
希望有各位能帮我一把 谢谢了


------解决方案--------------------
把“子窗体工具条中一“打开”按钮的操作”写成公共函数,单击父窗体按钮时调用该函数即可。
菜单也可以这样操作
------解决方案--------------------
探讨
呵呵 谢谢
我还是没说清楚,子窗体是 别人应经编好了的 应用程序,他的程序我没有,界面更不能动。

------解决方案--------------------
看看这个范例程序,里面有类似的操作过程
VB源码:外壳程序范例
http://download.****.net/source/2117506
------解决方案--------------------
楼主描述问题不够清晰。

下面的例子是单击 Windows画图工具(msPaint.exe) 文件->另存为 按钮的示例代码。

VB code

Sub MakeThis(gPathFileName As String)
    Dim ret As Long
    Dim pHwnd As Long, lpString As String, TextLength As Long
    ret = ShellExecute(Me.hwnd, "open", "msPaint.exe", """" & gPathFileName & """", vbNullString, SW_NORMAL)
    If ret <> 0 Then
        Do
            DoEvents
            pHwnd = FindWindow("MSPaintApp", Mid(gPathFileName, InStrRev(gPathFileName, "\") + 1) & " - 画图")
            'pHwnd = FindWindow("MSPaintApp", vbNullString)
        Loop Until pHwnd <> 0
        If pHwnd > 0 Then
            TextLength = GetWindowTextLength(pHwnd)
            lpString = Space(TextLength)
            Call GetWindowText(pHwnd, lpString, TextLength + 1)
            'Debug.Print lpString
            
            Dim hMenu As Long, hSubMenu As Long, hMenuItem As Long
            Dim mString As String, mStrLen As Long
            hMenu = GetMenu(pHwnd)
            If hMenu > 0 Then
                hSubMenu = GetSubMenu(hMenu, 0)
                hMenuItem = GetMenuItemID(hSubMenu, 3)
                
                mStrLen = GetMenuString(hSubMenu, hMenuItem, mString, 0, MF_BYCOMMAND)
                mString = Space(mStrLen)
                GetMenuString hSubMenu, hMenuItem, mString, mStrLen + 1, MF_BYCOMMAND
                'Debug.Print mString
                
                PostMessage pHwnd, WM_COMMAND, hMenuItem, 0
            End If
        End If
    End If
End Sub