我不清楚你的这个是啥软件的截图,但一般tab控件(包括WINDOWS标准的和用户完全自绘的),每个页签的caption和相应页签的window name是没啥关系的,而且更多的情况是,一个控件中这所有的页签都是画在同一个DC上的.所以你用FindWindowEx这样去找是不会有啥用的
Tag = FindWindowEx(NavHwnd, TagHwnd, vbNullString, "Play Route") 
SendMessage TagHwnd, TA_TOP, 0, 0 比如WINDOWS自带的 TabCtrl,是用TCM_SETCURSEL消息改变当前项的.不过看你代码中还有TA_TOP这种定义,可能是确有其事,那这种控件我就不清楚了.

解决方案 »

  1.   

    >>>> Window <<<<
    Title: NavMan
    Class: WindowsForms10.Window.8.app.0.33c0d9d
    Position: 110, 110
    Size: 217, 410
    Style: 0x16CF0000
    ExStyle: 0x00050100
    Handle: 0x00010BFC>>>> Control <<<<
    Class: WindowsForms10.Window.8.app.0.33c0d9d
    Instance: 1
    ClassnameNN: WindowsForms10.Window.8.app.0.33c0d9d1
    Name: tabPage1
    Advanced (Class): [NAME:tabPage1]
    ID: 68618
    Text: Play Route
    Position: 1, 22
    Size: 207, 321
    ControlClick Coords: 28, 1
    Style: 0x56000000
    ExStyle: 0x00010000
    Handle: 0x00010C0A>>>> Mouse <<<<
    Position: 33, 46
    Cursor ID: 0
    Color: 0x000000补充一下,使用Window Info查到的窗体信息多谢Bcrun的关注
      

  2.   

    看来你这个程序是vs2008做的啊,这个可能是donNet Framework里的标准控件,你不妨去vb.net版问一下,怎么样由hwnd获得相应的winform控件对象,然后调用其方法切换页签,也可能有消息可直接发给hwnd.
    要不你找个TCM_SETCURSEL消息的示例试试,兴许它封装的就是标准的tabctrl呢