C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[75840] Re:WebBrowser1 관련 질문 드립니다.
정성훈.해미 [sage5nor] 1194 읽음    2020-04-24 11:23
구글 검색해보니
WebBrowser1->ControlInterface->ExecWB()함수를 사용하면
줌을 할 수 있다고 합니다.

예)
OleVariant pvaIn, pvaOut;

pvaIn = 150;    // 150% 확대, 여기만 넣어주면 됨, 절반으로 축소는 50, 2배 확대는 200
pvaOut = NULL;  // 사용 안함

WebBrowser1->ControlInterface->ExecWB(OLECMDID::OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT::OLECMDEXECOPT_DONTPROMPTUSER, pvaIn, pvaOut);


단점은,,,
가로세로 비율을 다르게 줄 수 없다는 거.
구글에서 최종으로 넘어오는 지도 그림의 크기가 640x640이군요
이 그림 크기와 WebBrowser1의 크기를 이용하면
몇배로 줌을 하면 꽉찬 화면이 될지는 계산 될 것 같습니다.

WebBrowser1의 DocumentComplete 이벤트에서
줌을 처리해 보세요.

//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
	WebBrowser1->Navigate(L"https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=29000x28000&maptype=roadmap&markers=color:blue%7Clabel:S%7C37.5148181,127.0617657&markers=color:green%7Clabel:G%7C37.5148181,127.06176578&markers=color:red%7Clabel:C%7C37.5148181,127.0617657&key=AIzaSyCIE7HLqaLjOmsNwSZTJ8p5yLV0k7TP-mA");
}
//---------------------------------------------------------------------------
// 줌 함수(사용자 함수)
void __fastcall TForm2::Zoom(int AZoomValue)
{
	OleVariant pvaIn, pvaOut;

	pvaIn = AZoomValue;    // 150% 확대, 여기만 넣어주면 됨, 절반으로 축소는 50, 2배 확대는 200
	pvaOut = NULL;  // 사용 안함

	WebBrowser1->ControlInterface->ExecWB(OLECMDID::OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT::OLECMDEXECOPT_DONTPROMPTUSER, pvaIn, pvaOut);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::WebBrowser1DocumentComplete(TObject *ASender, IDispatch * const pDisp, const OleVariant &URL)
{
	double ZoomValue;

	// 웹브라우저 가로/세로 크기중 작은 값 얻기
        int WebBrowserSize = WebBrowser1->Width < WebBrowser1->Height ? WebBrowser1->Width : WebBrowser1->Height;
        // 줌 비율 구하기
	ZoomValue = WebBrowserSize*100 / 640;
        // 줌하기
	Zoom(ZoomValue);
}
//---------------------------------------------------------------------------



*여담,
근데 이것 보다는
구글에서 지도 가져오는 링크가 최종으로 이미지로 넘어오니까
그것을 이미지 형태로 받아서 처리하면
일반 이미지처럼 스트레치가 될 것 같네요.




손재용 님이 쓰신 글 :
: 안녕하세요
:
: WebBrowser 컴포넌트에서 지도앱을 연결 시켰는데요
:
: 버튼클릭 이벤트를 활용 해서 지도맵을 확대를 하고 싶은데 이 부분좀 알려주시면 감사하겠습니다.
:
: 속성을 모르겠어서...
:
:
: Ctrl 키 + 마우스 휠에 따라서 지도 맵의 크기가 조절 되더라고요
: 이걸 할 수 있는 방법을 찾고 있는데 ctrl키 아스키 코드는 알겠는데 마우스 휠을 (이벤트) 어떻게 적용을 해야 할지 모르겠어서요
:
: 감사합니다.
:

+ -

관련 글 리스트
75837 WebBrowser1 관련 질문 드립니다. 손재용 1101 2020/04/23
75862     Re:WebBrowser1 관련 질문 드립니다. 권동한 945 2020/05/20
75840     Re:WebBrowser1 관련 질문 드립니다. 정성훈.해미 1194 2020/04/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.