VB6:在第三方控件中获取子控件的hWnd

时间:2011-04-08 14:59:27

标签: vb6 user32 hwnd

我有一个vb6第三方UpDown Control(让它成为ControlX),用UISpy我可以看到ControlX里面有2个控件,一个是“ThunderRT6TextBox”,另一个是“UpDown20WndClass”。

我在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,在它周围画一个边框。

我该怎么做?

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果已将updown控件设置为文本框的子级,则应该能够使用EnumChildWindows来查找它。您可以使用WinSpy查看是否存在包含文本框和更新的整体父hwnd,然后为其枚举。

答案 1 :(得分:0)

当得到ControlX hwnd时,它返回“ThunderRT6TextBox”的hwnd。要获得“UpDown20WndClass”hwnd,我需要它的父hwnd(ControlX hwnd)。我使用了GetParent和“ThunderRT6TextBox”hwnd,得到了普通的父hwnd,然后用FindWindowEx获得了“UpDown20WndClass”。