1

我有一个 vb6 第三方 UpDown 控件(让它成为 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,以在其周围绘制边框。

我怎样才能做到这一点?

提前致谢。

4

2 回答 2

0

如果 updown 控件已成为文本框的子项,您应该可以使用 EnumChildWindows 找到它。您可以使用 WinSpy 来查看是否有一个包含文本框和 updown 的整体父 hwnd,然后为它枚举。

于 2011-04-08T18:47:07.583 回答
0

我在获取 ControlX hwnd 时返回“ThunderRT6TextBox”的 hwnd。要获得“UpDown20WndClass”hwnd,我需要它的父 hwnd(ControlX hwnd)。我将 GetParent 与“ThunderRT6TextBox”hwnd 一起使用,并得到了公共父 hwnd,然后使用 FindWindowEx 我得到了“UpDown20WndClass”。

于 2011-04-12T09:20:56.457 回答