mfc chtmlview 예제

그림 29: MYEX36C 액티브X 제어 프로그램 예제. 컴파일 및 실행합니다. 샘플을 컴파일하고 실행합니다. “?” 도구 모음 항목을 누르거나 도움말/정보 탐색 함수를 호출하려면 선택합니다. 도 20은 MYEX36B 의 동작 예를 나타낸다. 두 개의 매개 변수가있는 자바 스크립트 호출의 예는 다음과 같습니다 : lpvPostData HTTP POST 트랜잭션으로 보낼 데이터에 대한 포인터. 예를 들어 POST 트랜잭션은 HTML 양식으로 수집된 데이터를 전송하는 데 사용됩니다. 이 매개 변수가 사후 데이터를 지정하지 않으면 탐색에서 HTTP GET 트랜잭션을 발행합니다. URL이 HTTP URL이 아닌 경우 이 매개 변수는 무시됩니다. CHtmlView는 단순히 Microsoft 웹 브라우저 컨트롤을 구현하기 때문에 인쇄에 대한 지원은 다른 CView 파생 클래스와 는 다릅니다. 대신 WebBrowser 컨트롤은 프린터 사용자 인터페이스 및 인쇄를 구현합니다. 결과적으로 CHtmlView는 인쇄 미리 보기를 지원하지 않으며 프레임워크는 다른 인쇄 지원 기능에 대해 제공하지 않습니다. 응용 프로그램.

이제 MFC에서 DHTML을 사용하는 방법을 실제로 보여 주는 샘플을 만들어 보겠습니다. MYEX36B는 CHtmlView 개체와 스플리터로 구분된 CListView 개체를 만듭니다. 그런 다음 이 예제에서는 DHTML을 사용하여 CHtmlView 개체의 HTML 요소를 나열하고 결과를 CListView 개체에 표시합니다. 최종 결과는 HTML 파일의 DHTML 개체 모델을 보는 데 사용할 수 있는 DHTML 탐색기가 됩니다. MYEX36B를 만드는 단계는 다음과 같습니다. IHTMLDocument2::get_all 메서드를 호출하여 모든 컬렉션에 액세스할 수 있습니다. 이 메서드는 문서의 모든 요소를 포함 하는 IHTMLElementCollection 컬렉션 인터페이스를 반환 합니다. 그런 다음 IHTMLElementCollection::item 메서드(위의 스크립트의 괄호와 유사)를 사용하여 컬렉션을 반복할 수 있습니다. IHTMLElementCollection::item 메서드는 IID_IHTMLElement 인터페이스를 요청하여 QueryInterface()를 호출할 수 있는 IDispatch 포인터를 제공합니다. 쿼리인터페이스()에 대한 이 호출은 HTML 요소에 대한 정보를 얻거나 설정하는 데 사용할 수 있는 IHTMLElement 인터페이스 포인터를 제공합니다. 대부분의 요소는 특정 요소 유형으로 작업하기 위한 특정 인터페이스도 제공합니다. 이러한 요소별 인터페이스 이름은 XXXX가 요소의 이름인 IHTMLXXXXElement의 형식을 사용합니다(예: IHTMLBodyElement).

필요한 요소별 인터페이스를 요청하려면 IHTMLElement 개체에서 QueryInterface()를 호출해야 합니다. 이 혼란 소리 수 있습니다 (그것은 될 수 있기 때문에!). 그러나 걱정하지 마세요 -이 모듈의 MFC 및 ATL 섹션에는 모든 관계가 어떻게 결합되는지 보여주는 많은 샘플이 포함되어 있습니다. 당신은 시간에 DHTML 코드를 작성합니다. DHTML에 대한 ATL의 지원은 모든 ATL ActiveX 컨트롤에 포함될 수 있는 HTML 개체의 형태로 제공됩니다. MYEX36C는 DHTML 지원을 보여 주는 ATL 컨트롤을 만듭니다. 예제를 만들려면 다음 단계를 따르십시오: 이 URL은 정규화되고 정규화된 URL이기 때문에 lpszURL로 표시된 URL은 브라우저가 탐색하도록 지시한 URL과 다를 수 있습니다. 예를 들어 응용 프로그램에서 탐색 또는 Navigate2 호출에서 “www.microsoft.com”의 URL을 지정하는 경우 OnNavigateComplete2에서 전달된 URL은 “http://www.microsoft.com/”이 됩니다. 또한 서버가 브라우저를 다른 URL로 리디렉션한 경우 리디렉션된 URL이 여기에 반영됩니다.

이 사이트를 사용자 고유의 사이트로 바꾸거나 LoadFromResource 구성원 함수를 사용하여 프로젝트의 리소스 스크립트에 있는 HTML 페이지를 보기의 기본 콘텐츠로 열 수 있습니다.