2011-04-08 6 views
1

vb6 타사 UpDown 컨트롤 (ControlX로 지정)이 있습니다. UISpy를 통해 ControlX에는 2 개의 컨트롤이 있고, 하나는 "ThunderRT6TextBox"입니다. 기타는 "UpDown20WndClass"입니다.VB6 : 제 3 자 컨트롤 내에서 하위 컨트롤 가져 오기

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를 가진 래핑 된 컨트롤은 Microsoft Forms 2.0 라이브러리의 일부가 아니기를 바랍니다. 이 라이브러리는 VB6 프로그램에서의 사용에 대해주의를 기울여야하며 합법적으로 재배포 할 수 없으므로 대부분의 프로그램에서 효과적으로 사용할 수 없습니다. – Bob77

답변

0

updown 컨트롤이 텍스트 상자의 자식으로 설정된 경우 EnumChildWindows를 사용하여 찾을 수 있어야합니다. WinSpy를 사용하여 텍스트 상자와 updown을 모두 포함하는 전체 부모 hwnd가 있는지 확인한 다음 열거 형을 열거 할 수 있습니다.

+0

안녕하세요, 제안 주셔서 감사합니다,하지만 불행히도 전체적인 부모가 없습니다. –

0

내가 ControlX을 가져올 때 hwnd는 "ThunderRT6TextBox"의 hwnd를 반환합니다. "UpDown20WndClass"hwnd를 얻으려면 부모 hwnd (ControlX hwnd)가 필요합니다. "ThunderRT6TextBox"hwnd와 GetParent를 사용하고 공통 부모 hwnd를 얻은 다음 FindWindowEx를 사용하여 "UpDown20WndClass"를 얻었습니다.

관련 문제