VB6: Получить hWnd дочернего элемента управления внутри стороннего элемента управления - PullRequest
1 голос
/ 08 апреля 2011

У меня есть сторонний элемент управления UpDown vb6 (пусть это будет 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).

Я хотел бы получить внутренний элемент управления UpDown20WndClass элемента ControlX, чтобы нарисовать границу вокруг него.

Как я могу это сделать?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2011

Я, когда получаю ControlX hwnd, возвращает hwnd "ThunderRT6TextBox".Чтобы получить hwnd «UpDown20WndClass», мне нужен родительский hwnd (ControlX hwnd).Я использовал GetParent с hwnd «ThunderRT6TextBox» и получил общий родительский hwnd, а затем с FindWindowEx я получил «UpDown20WndClass».

0 голосов
/ 08 апреля 2011

Если элемент управления обновлением сделан дочерним по отношению к текстовому полю, вы должны иметь возможность использовать EnumChildWindows, чтобы найти его.Вы можете использовать WinSpy, чтобы увидеть, есть ли общий родительский hwnd, который содержит и текстовое поле, и обновление, а затем перечислить его.

...