문서 내용

요약

Visual Basic.NET 응용 프로그램에 WebBrowser 컨트롤을 호스팅하는 NewWindow2 이벤트 window.open 스크립트에 의해 생성 되는 호출을 처리할 수 있습니다. 그러나 아닙니다 확실 신청이 WebBrowser 호스트 창의 올바르게 조정할 수 있도록 window.open기능 인수에 전달 된 너비 및 높이 값을 얻을 수는 어떻게. 이 문서에서는 새 너비와 높이 WebBrowser 컨트롤의 구하는 방법 및 폼의 크기를 적절 하 게 조정 하는 방법을 보여 줍니다.

요구 사항

다음은 권장되는 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩 목록입니다.

  • Microsoft Visual Studio.NET

  • Microsoft Internet Explorer 5.5 서비스 팩 2 이상

예제 만들기

Visual Basic.NET 응용 프로그램에 WebBrowser 컨트롤을 호스팅하는 방법, WebBrowser 컨트롤의 NewWindow2 이벤트를 처리 하는 방법 및 WindowSetWidth 및 이동할 이벤트를 처리 하는 방법을 설명합니다 응용 프로그램의 크기를 조정 합니다.

  1. 다음과 같이 Visual Basic 새 Windows 응용 프로그램을 만듭니다.

    1. Visual Studio.NET을 시작 합니다.

    2. 파일 메뉴에서 새로 만들기를 가리키고 프로젝트를 클릭 합니다.

    3. 프로젝트 형식Visual Basic 프로젝트를 클릭 합니다. 템플릿Windows 응용 프로그램을 클릭 합니다.

  2. 도구 상자에서 일반을 클릭 하 고 도구 상자에서를 마우스 오른쪽 단추로 누른 다음 도구 상자 사용자 지정.

  3. COM 구성 요소 탭에서 Microsoft 웹 브라우저 확인란을 선택한 다음 확인을 클릭 합니다.

  4. 도구 상자에서 탐색기 창에서 두 번 클릭 합니다.

  5. TextBox 컨트롤 및 Button 컨트롤을 폼에 추가 합니다.

  6. 코드 창에서 단추의 onClick 이벤트의 구현을 보려면 단추를 두 번 클릭 하 고 다음 코드를 추가 합니다.

        Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub

    이 코드를 사용 하면 텍스트 상자에 지정 된 URL을 찾을 수 있습니다.

  7. NewWindow2에 대 한 처리기 함수를 작성 하는 다음 코드를 추가 합니다.

        Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _        Handles AxWebBrowser1.NewWindow2            Dim frmWB As Form1            frmWB = New Form1()            frmWB.AxWebBrowser1.RegisterAsBrowser = True            e.ppDisp = frmWB.AxWebBrowser1.Application            frmWB.Visible = True    End Sub
  8. 이동할에 대 한 처리기 함수를 작성 하는 다음 코드를 추가 합니다.

        Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _        Handles AxWebBrowser1.WindowSetHeight            Dim heightDiff As Integer            heightDiff = Me.Height - Me.AxWebBrowser1.Height            Me.Height = heightDiff + e.height    End Sub
  9. WindowSetWidth에 대 한 처리기 함수를 작성 하는 다음 코드를 추가 합니다.

        Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _        Handles AxWebBrowser1.WindowSetWidth            Dim widthDiff As Integer            widthDiff = Me.Width - Me.AxWebBrowser1.Width            Me.Width = widthDiff + e.width    End Sub

전체 코드 예제

Public Class Form1    Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code "    'Omitted#End Region    Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub    Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _        Handles AxWebBrowser1.NewWindow2            'MessageBox.Show(AxWebBrowser1.Height & ":" & AxWebBrowser1.Width)            'MessageBox.Show(doc.body.innerHTML)            Dim frmWB As Form1            frmWB = New Form1()            frmWB.AxWebBrowser1.RegisterAsBrowser = True            'frmWB.AxWebBrowser1.Navigate2("about:blank")            e.ppDisp = frmWB.AxWebBrowser1.Application            frmWB.Visible = True            'MessageBox.Show(frmWB.AxWebBrowser1.Height & ":" & frmWB.AxWebBrowser1.Width)    End Sub    Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _        Handles AxWebBrowser1.WindowSetHeight            'MessageBox.Show("In SetHeight" & Me.Height & ":" & e.height)            Dim heightDiff As Integer            heightDiff = Me.Height - Me.AxWebBrowser1.Height            Me.Height = heightDiff + e.height    End Sub    Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _        Handles AxWebBrowser1.WindowSetWidth            'MessageBox.Show("In SetWidth" & Me.Width & ":" & e.width)            Dim widthDiff As Integer            widthDiff = Me.Width - Me.AxWebBrowser1.Width            Me.Width = widthDiff + e.width    End SubEnd Class

작동 하는지 확인

  1. 응용 프로그램을 빌드하십시오.

  2. 메모장을 엽니다. Test.htm, 명명 된 새 파일을 만들고 다음 코드를 추가 합니다.

    <HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE></TITLE><script>function openWin(){var win;win = window.open("http://www.microsoft.com","blah","width=600, height=600");}</script></HEAD><BODY><button onClick=openWin()>Open Window</button></BODY></HTML>
  3. 웹 서버에서 Test.htm을 저장 합니다.

  4. 응용 프로그램을 실행 합니다.

  5. Test.htm 페이지를 찾아 다음 단추를 클릭 합니다. 구성 요소 개발자는 Microsoft 회사 웹 사이트 응용 프로그램의 새 인스턴스에서 열립니다. 폼에 window.open() 호출에 전달 하는 기능에 따라 크기가 조정 됩니다.

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하려면 아래 문서 번호를 클릭 합니다.

311284 방법: Visual Basic.NET 응용 프로그램에서 문서 이벤트를 처리 합니다.

259963 방법: 너비를 구하고 Visual C++ WebBrowser 호스트 Window.open 내부에 제공 된 높이속성과 이벤트를 노출 하는 메서드 및 WebBrowser 컨트롤에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 참조.

Visual Basic 개발자가http://msdn2.microsoft.com/en-us/library/Aa752043.aspx 에 대 한 WebBrowser 컨트롤: 참조Microsoft Internet Explorer 용 웹 기반 솔루션을 개발 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.

http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.