현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

웹 브라우저 컨트롤의 Zoom 기능 사용 방법 [Step by Step]

저자 소개
이 문서는 권용휘 MVP에 의해 작성되었습니다. 권용휘 MVP가 운영하는 블로그를 통해 Microsoft 제품에 대한 지식과 정보를 공유하시기 바랍니다.
Microsoft Most Valuable ProfessionalMicrosoft MVP(Most Valuable Professionals)는 엄선된 최고의 기술 전문가들로서, 커뮤니티에서 적극적인 활동을 통해 다른 사용자들을 돕는 전문가로 구성된 그룹입니다. 

소개
 Internet Explorer 7부터 화면을 확대하여 볼 수 있는 Zoom 기능이 지원됩니다.
하지만 Visual C++에서 사용할 수 있는 Microsoft Web Browser 컨트롤에서는 이 Zoom 기능을 손쉽게 지원하는 함수가 없어 사용하기에 다소 번거롭습니다.
이 문서에서는 이 Zoom 기능을 사용하는 방법에 대해 설명합니다.



Zoom 기능 사용하기
Microsoft Web Browser 컨트롤을 사용하여 Zoom 기능을 지원하는 간단한 프로그램을 만들기 위해서 다음 방법을 순서대로 따라 해 보세요.



  1. Visual Studio 2010을 사용하여 MFC Application 을 선택하여 프로젝트를 생성하세요. 
  2. Application Type에서 Dialog based로 변경하여 프로젝트를 생성하세요.

  3. 메인 다이얼로그에서 마우스 오른쪽 단추로 [Insert ActiveX Control]를 클릭하세요.

  4. Insert ActiveX Control 창에서 [Microsoft Web Browser]를 선택하세요.

  5. Static Text, Edit Control, Spin Control을 순서대로 배치하세요.

  6. 메인 다이얼로그에서 [Ctrl+D]키를 눌러 반드시 Edit Control이 Spin Control보다 낮은 번호를 가지도록 변경하세요. 

  7. 메인 다이얼로그의 Properties창에서 [Messages]를 선택하세요.

  8. Spin Control의 Properties 창에서 Auto Buddy, Set Buddy Integer [True]로 설정하세요.

  9. Edit Control에서 마우스 단추로 [Add Variable]을 선택하세요.
  10. Category, Variable Type을 각각 [Value], [int]로 변경하고, Variable name, Min value, Max value에 각각 m_nZoom, 10, 1000을 입력하세요.

  11. Spin Control에서 마우스 오른쪽 단추로 [Add Variable]을 선택하세요.

  12. Variable name에 m_spin을 입력하세요.

  13. Microsoft Web Browser컨트롤에서 마우스 오른쪽 단추로 [Add Variable]을 클릭하세요. 

  14. Variable name에 m_ie를 입력하세요.

  15. Edit Control과 Spin Control을 선택하여, Properties 창에서 Disabled 속성을 [True]로 변경하세요.

  16. Class View에서 [다이얼로그 클래스(CWebBrTestDlg)]를 더블 클릭하세요.

  17. 다이얼로그 클래스(CWebBrTestDlg) 끝 부분에 아래와 같은 코드를 추가하세요.

    private:           BOOL m_bZoomAvailable;           BOOL m_bZoomAvailableChecked;

  18. Class View에서 [다이얼로그 클래스의 생성자(CWebBrTestDlg::CWebBrTestDlg)]를 더블 클릭하세요. 

  19. 생성자(CWebBrTestDlg::CWebBrTestDlg)에서 아래와 같은 코드를 추가하세요. 
    m_bZoomAvailable = FALSE;m_bZoomAvailableChecked = FALSE;
  20. Class View에서 [OnInitDialog(CWebBrTestDlg::OnInitDialog)]를 더블 클릭하세요.

  21.  OnInitDialog(CWebBrTestDlg::OnInitDialog)함수에 아래와 같은 코드를 추가하세요.
    m_ie.Navigate( _T("http://www.msn.com"), NULL, NULL, NULL, NULL );           m_spin.SetRange( 10, 1000 );UDACCEL accel;accel.nSec = 1000;accel.nInc = 25;m_spin.SetAccel( 1, &accel ); m_nZoom = 100;UpdateData(FALSE);
  22. Class View에서 메인 [다이얼로그 클래스(CWebBrTestDlg)]를 마우스 오른쪽 단추로 클릭하고 [Add], [Add Function]을 선택하세요.

  23. Function name에 SetZoom을 입력하고, Parameter list에 int nZoom을 추가하세요.
  24. SetZoom 함수에 아래와 같이 코드를 추가하세요.
    int CWebBrTestDlg::SetZoom(int nZoom){           int nRet = 0;           if( m_bZoomAvailable ) {                       try {                                   CComVariant vZoom = nZoom;                                   m_ie.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DODEFAULT, &vZoom, NULL);                                    nRet = 1;                       } catch (CException* pEx) {                                   pEx->Delete();                       }           }           return nRet;}
  25. Class View에서 [메인 다이얼로그 클래스(CWebBrTestDlg)]를 마우스 오른쪽 단추를 누르고, [Add], [Add Function]을 선택하세요.

  26. Function name에 GetZoom을 입력하세요.

  27.  GetZoom 함수에 아래와 같이 코드를 추가하세요. 
    int CWebBrTestDlg::GetZoom(void){           int nRet = -1;           if( m_bZoomAvailable ) {                                              try {                                         CComVariant vZoom = 0;                                   m_ie.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DODEFAULT, NULL, &vZoom);                                    nRet = vZoom.intVal;                                                    } catch (CException* pEx) {                                   pEx->Delete();                       }           }           return nRet;}
  28. 다이얼로그에 있는 Microsoft Web Browser 컨트롤을 선택하세요.
  29. Properties 창에서 [Control Events] 버튼을 클릭하세요.
  30.   DocumentComplete를 선택하여 이벤트 핸들러를 추가하세요.
  31.  추가된DocumentCompleteExplorer1에 아래와 같은 코드를 입력하세요.
    void CWebBrTestDlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL){           if( m_bZoomAvailableChecked == FALSE ) {                       m_bZoomAvailableChecked = TRUE;                        try {                                   CComVariant vZoom = 0;                                   m_ie.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, NULL, &vZoom);                                    m_bZoomAvailable = TRUE;                       } catch (CException* pEx) {                                   pEx->Delete();                       }                        UpdateZoomAvailability( m_bZoomAvailable );           }}
  32.    Class View에서 메인 다이얼로그 클래스(CWebBrTestDlg)에서 오른쪽 마우스 단추를 누르고, Add, Add Function을 선택하세요.
  33. Function name에 UpdateZoomAvailability를 입력하고, Parameter list에 bool bZoomAvailable을 추가하세요.
  34.  UpdateZoomAvailability함수에 아래의 코드를 추가하세요.
    int CWebBrTestDlg::UpdateZoomAvailability(bool bZoomAvailable){           CWnd* pWnd;                      pWnd = GetDlgItem( IDC_EDIT1 );           if(pWnd) pWnd->EnableWindow( bZoomAvailable );           pWnd = GetDlgItem( IDC_SPIN1 );           if(pWnd) pWnd->EnableWindow( bZoomAvailable );            return 0;}
  35.  다이얼로그에 있는 Edit Control을 선택하세요.
  36. Properties창에서 Control Events버튼을 선택하세요. 
  37.    EN_UPDATE를 선택하여 이벤트 핸들러를 추가하세요.

  38. OnEnUpdateEdit1 함수에 아래와 같이 코드를 추가하세요. 

    void CWebBrTestDlg::OnEnUpdateEdit1(){           CWnd* pWnd = GetDlgItem( IDC_EDIT1 );           if( pWnd ) {                       if( pWnd->IsWindowVisible() ) {                                   UpdateData(TRUE);                                   SetZoom( m_nZoom );                       }           }}
  39. 프로그램을 실행하세요.
  40. Spin Control을 사용하여 Zoom in/out이 되는지 확인하세요. 


추가 정보
주의사항
사용자 계정 컨트롤 메시지가 나타나면 관리자 암호를 입력하거나 [예]를 클릭합니다.
의견 보내기
의견 보내기
Microsoft 고객지원 사이트에서는 고객님의 소리를 귀담아 듣습니다. 아래 의견 보내기로 소중한 의견 보내주시기 바랍니다.

커뮤니티 솔루션 고지 사항
Microsoft Corporation 및/또는 그 공급자는 어떤 목적으로든 여기에 있는 정보 및 관련 그래픽의 적합성, 안정성 또는 정확성에 대해 어떠한 보증도 하지 않습니다. 이러한 모든 정보 및 관련 그래픽은 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. Microsoft 및/또는 그 공급자는 상품성, 특정 목적에 대한 적합성, 전문적 노력, 제품명 및 비침해에 대한 모든 묵시적인 보증을 포함하여 본 정보 및 관련 그래픽에 대한 모든 보증을 배제합니다. Microsoft 및/또는 그 공급자는 어떠한 경우에도 여기에 포함된 정보 및 관련 그래픽의 사용 또는 사용할 수 없음으로 인해 발생하는 모든 직접적, 간접적, 징벌적, 부수적, 특별 손해 또는 기타 모든 손해(사용, 데이터 또는 이익 손실 등 기타 모든 손실을 포함하되 이에 제한되지 않음)가 계약, 불법 행위, 과실, 책무에 의한 것이든 책임을 지지 않으며 이는 Microsoft 또는 공급자가 그와 같은 손해의 가능성을 사전에 알고 있던 경우에도 마찬가지라는 데 동의합니다.
속성

문서 ID: 2667400 - 마지막 검토: 06/02/2014 07:48:00 - 수정: 1.3

Microsoft Web Services Enhancements for Microsoft .NET 2.0

  • kbstepbystep kbmvp kbcommunity KB2667400
피드백
ext/JavaScript" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("