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

기술 자료: 2667400 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

저자 소개

이 문서는 권용휘 MVP에 의해 작성되었습니다. 권용휘 MVP가 운영하는?블로그를 통해 Microsoft 제품에 대한 지식과 정보를 공유하시기 바랍니다.
표 축소표 확대
그림 축소그림 확대
Microsoft Most Valuable Professional
Microsoft 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로 변경하여 프로젝트를 생성하세요.
    그림 축소그림 확대
    2667383

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

  4. Insert ActiveX Control 창에서 [Microsoft Web Browser]를 선택하세요.
    그림 축소그림 확대
    2667385

  5. Static Text, Edit Control, Spin Control을 순서대로 배치하세요.
    그림 축소그림 확대
    2667386

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

  7. 메인 다이얼로그의 Properties창에서 [Messages]를 선택하세요.
    그림 축소그림 확대
    2667388

  8. Spin Control의 Properties 창에서 Auto Buddy, Set Buddy Integer [True]로 설정하세요.
    그림 축소그림 확대
    2667389

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

  11. Spin Control에서 마우스 오른쪽 단추로 [Add Variable]을 선택하세요.
    그림 축소그림 확대
    2667392

  12. Variable name에 m_spin을 입력하세요.
    그림 축소그림 확대
    2667393

  13. Microsoft Web Browser컨트롤에서 마우스 오른쪽 단추로 [Add Variable]을 클릭하세요.?
    그림 축소그림 확대
    2667394

  14. Variable name에 m_ie를 입력하세요.
    그림 축소그림 확대
    2667395

  15. Edit Control과 Spin Control을 선택하여, Properties 창에서 Disabled 속성을 [True]로 변경하세요.
    그림 축소그림 확대
    2667396

  16. Class View에서 [다이얼로그 클래스(CWebBrTestDlg)]를?더블 클릭하세요.
    그림 축소그림 확대
    2667397

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

    private:
               BOOL m_bZoomAvailable;
               BOOL m_bZoomAvailableChecked;

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

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

  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]을 선택하세요.
    그림 축소그림 확대
    2667404

  23. Function name에 SetZoom을 입력하고, Parameter list에 int nZoom을 추가하세요.
    그림 축소그림 확대
    2667405
  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]을 선택하세요.
    그림 축소그림 확대
    2667406

  26. Function name에 GetZoom을 입력하세요.
    그림 축소그림 확대
    2667407

  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] 버튼을 클릭하세요.
    그림 축소그림 확대
    2667408
  30. ??DocumentComplete를 선택하여 이벤트 핸들러를 추가하세요.
    그림 축소그림 확대
    2667409
  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을 선택하세요.
    그림 축소그림 확대
    2667410
  33. Function name에 UpdateZoomAvailability를 입력하고, Parameter list에 bool bZoomAvailable을 추가하세요.
    그림 축소그림 확대
    2667411
  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버튼을 선택하세요.?
    그림 축소그림 확대
    2667412
  37. ???EN_UPDATE를 선택하여 이벤트 핸들러를 추가하세요.
    그림 축소그림 확대
    2667413

  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이 되는지 확인하세요.?
    그림 축소그림 확대
    2667414


추가 정보

표 축소표 확대
그림 축소그림 확대
주의사항

사용자 계정 컨트롤 메시지가 나타나면 관리자 암호를 입력하거나 [예]를 클릭합니다.

의견 보내기

표 축소표 확대
그림 축소그림 확대
의견 보내기

Microsoft 고객지원 사이트에서는 고객님의 소리를 귀담아 듣습니다. 아래 의견 보내기로 소중한 의견 보내주시기 바랍니다.

커뮤니티 솔루션 고지 사항

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

속성

기술 자료: 2667400 - 마지막 검토: 2014년 6월 2일 월요일 - 수정: 1.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Web Services Enhancements for Microsoft .NET 2.0
키워드:?
kbstepbystep kbmvp kbcommunity KB2667400

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com