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 컨트롤 프로젝트의 요소 식별을 참조하세요.