호 지금 내가 VB6에서 현재 창/양식의 hWnd를 얻습니까?VB6에서 현재 윈도우/폼의 hWnd를 가져 옵니까?
5
A
답변
13
양식을 사용하는 경우 : Me.hWnd
현재 형태 인 양식을 알 수없는 경우 : 윈도우 API를 사용하여 Screen.ActiveForm.hWnd
2
은 내가 VB6를 사용하기 때문에 긴 시간이었다, 그러나 이것은 내가 기억하는 것입니다 :
당신은 VB6 항목 주위의 시작 메뉴에 있어야 API 뷰어를 열고 자하는 것입니다. 열 때 win32api.txt를 선택하면 모든 Win32 API 함수 목록이 표시됩니다. 이것은 기능 서명을 엉망으로 만들지 않는 가장 쉬운 방법입니다. 함수 선언을 복사하여 VB6 모듈 중 하나에 붙여 넣습니다.
나는 항상 "속여"GetWindow를 사용하여 사용 가능한 모든 창을 반복하지 않고 캡션 이름으로 내 창을 찾았습니다. 괜찮 으면 FindWindow를 사용하고 캡션 이름을 두 번째 매개 변수로 전달해야합니다.
8
, GetForegroundWindow()
는 관계없이에서 어떤 응용 프로그램의 최상위 윈도우의 핸들을 얻을 것이다, 그리고 GetActiveWindow()
는 응용 프로그램의의 핸들을 얻을 것이다 활성 창. Declare
당신이 필요합니다 문 : 전술 한 바와 같이 두 함수를 호출
Declare Function GetForegroundWindow Lib "user32.dll"() As Long
Declare Function GetActiveWindow Lib "user32.dll"() As Long
는 창 핸들을 반환합니다.
+1. 분명히 현재 활성 창은 양식이 아닐 수도 있습니다. – MarkJ
+1 좋은 답변입니다. –