다음을 통해 공유


DHTML에서 C++ 코드 호출

DHTML 컨트롤은 테스트 컨테이너 또는 Internet Explorer와 같은 컨테이너에서 호스트될 수 있습니다. 테스트 컨테이너에 액세스하는 방법에 대한 자세한 내용은 테스트 컨테이너를 사용하여 속성 및 이벤트 테스트를 참조하세요.

컨트롤을 호스팅하는 컨테이너는 일반 컨트롤 인터페이스를 사용하여 컨트롤과 통신합니다. DHTML은 "UI"로 끝나는 디스패치 인터페이스를 사용하여 C++ 코드 및 HTML 리소스와 통신합니다. ATL DHTML 컨트롤 수정에서 이러한 다양한 인터페이스에서 호출할 메서드를 추가하는 방법을 연습할 수 있습니다.

DHTML 에서 C++ 코드를 호출하는 예제를 보려면 ATL 컨트롤 마법사를 사용하여 DHTML 컨트롤 을 만들고 헤더 파일 및 HTML 파일에서 코드를 검사합니다.

헤더 파일에서 WebBrowser 메서드 선언

DHTML UI에서 C++ 메서드를 호출하려면 컨트롤의 UI 인터페이스에 메서드를 추가해야 합니다. 예를 들어 ATL 컨트롤 마법사에서 만든 헤더 파일에는 마법사에서 생성된 컨트롤의 UI 인터페이스 멤버인 C++ 메서드 OnClick가 포함되어 있습니다.

컨트롤의 .h 파일에서 검사 OnClick 합니다.

STDMETHOD(OnClick)(IDispatch* pdispBody, VARIANT varColor)

첫 번째 매개 변수인 pdispBody는 본문 개체의 디스패치 인터페이스에 대한 포인터입니다. 두 번째 매개 변수인 varColor는 컨트롤에 적용할 색을 식별합니다.

HTML 파일에서 C++ 코드 호출

헤더 파일에서 WebBrowser 메서드를 선언한 후에는 HTML 파일에서 메서드를 호출할 수 있습니다. HTML 파일에서 ATL 컨트롤 마법사는 세 가지 Windows 디스패치 메서드, 즉 컨트롤의 배경색을 변경하기 위해 메시지를 디스패치하는 세 OnClick 가지 메서드를 삽입합니다.

HTML 파일의 메서드 중 하나를 검사합니다.

<BUTTON onclick='window.external.OnClick(theBody, "red");'>Red</BUTTON>

위의 HTML 코드에서 창 외부 메서드 OnClick는 단추 태그의 일부로 호출됩니다. 메서드에는 HTML 문서의 본문을 참조하는 매개 변수와 "red"단추를 클릭할 때 컨트롤의 배경색이 빨간색으로 변경됨을 나타내는 두 개의 매개 변수theBody가 있습니다. Red 다음은 단추의 레이블입니다.

사용자 고유의 메서드를 제공하는 방법에 대한 자세한 내용은 ATL DHTML 컨트롤 수정을 참조하세요. HTML 파일에 대한 자세한 내용은 DHTML 컨트롤 프로젝트의 요소 식별을 참조하세요.

참고 항목

DHTML 컨트롤 지원