2011-04-08 101 views
1

我有一個VB6第三方上下控制內部的子控件的hWnd(讓它成爲ControlX),與UISpy我看得出來,ControlX有2個控制裏面,一個是「ThunderRT6TextBox」的其他是「UpDown20WndClass」。VB6:獲取第三方控制

我周圍繪製ControlX邊框。我現在用的是ControlX的hWnd,我繪製邊框這樣的:

hdc = BeginPaint(hwnd, tPS) 

    GetClientRect hwnd, controlXRect 

    DrawEdge hdc, controlXRect, BDR_SUNKENOUTER, BF_RECT 

的問題是,在邊框周圍的ThunderRT6TextBox繪製,但不是UpDown20WndClass(也許ControlX的hWnd返回它的內部ThunderRT6TextBox控制HWND)。

我想獲得ControlX的內部控制UpDown20WndClass的HWND,在周圍畫一個邊框。

我該怎麼做?

在此先感謝。

+0

希望具有UpDown20WndClass不是微軟的一部分纏繞控制窗體2.0庫。這個庫有警告反對它在VB6程序中的使用,並且不能合法地重新分配,有效地使它對大多數程序無用。 – Bob77 2011-04-08 15:44:01

回答

0

如果沿着上下控制已經取得的文本框的孩子,你應該能夠使用EnumChildWindows找到它。你可以使用WinSpy來查看是否有一個包含文本框和updown的整體父hwnd,然後枚舉它。

+0

嗨,感謝您的建議,但不幸的是,沒有全面的家長。 – 2011-04-11 11:19:07

0

我時,你得到ControlX HWND則返回 「ThunderRT6TextBox」 的HWND。要獲得「UpDown20WndClass」hwnd,我需要它的父級hwnd(ControlX hwnd)。我用GetParent與「ThunderRT6TextBox」hwnd,並得到了常見的父HWWD,然後與FindWindowEx我得到了「UpDown20WndClass」。