FILE: IEZOOM.EXE Changes the Font Size of WebBrowser ControlLast reviewed: January 19, 1998Article ID: Q156693 |
The information in this article applies to:
SUMMARYIEZOOM demonstrates how to change the font size of the text displayed in a Web Browser control embedded in an MFC container application. The following file is available for download from the Microsoft Software Library:
~ Iezoom.exe (size: 51155 bytes)For more information about downloading files from the Microsoft Software Library, please see the following article in the Microsoft Knowledge Base:
ARTICLE-ID: Q119591 TITLE : How to Obtain Microsoft Support Files from Online Services MORE INFORMATIONMicrosoft Internet Explorer (IE) obtains much of its functionality from COM objects implemented in Shdocvw.dll, Mshtml.dll, and Urlmon.dll. The IE application itself is a thin wrapper that aggregates the functionality of these components. Developers who wish to tap directly into the functionality of these underlying components are frequently interested in mimicking the functionality of IE. While many IE features are exposed through the Web Browser (SHDOCVW) control's automation model, other features available on the IE menus, including changing the font size of the text of the current page, are not exposed this way. This sample demonstrates how to use the IOleCommandTarget interface to change the font size of the text of the current page displayed by a WebBrowser control. The IOleCommandTarget interface consists of two methods, QueryStatus and Exec, in addition to the IUnknown methods. QueryStatus allows the client to determine if an object supports a particular command. If QueryStatus indicates that the specified command is enabled, the client can call Exec to execute or show Help for the command. The list of standard command identifiers is defined in the OLECMDID enumeration in the header file DOCOBJ.H. For more information on the IOleCommandTarget interface, see the Internet Client SDK online documentation. The sample is a Microsoft Foundation Classes (MFC) 4.2 SDI application that mimics the functionality of the Fonts pop-up under IE's View menu. Both the sample and IE provide the user with five scaling factors: largest, large, medium, small, smallest. While a page is displayed in medium by default, choosing any of the other options scales the text of the page up and down respectively. The following code taken from the sample shows how to accomplish this using the IOleCommandTarget interface:
void CIezoomView::ChangeScale(IEScaleSize scaleSize) { HRESULT hr; LPDISPATCH pDisp = NULL; LPOLECOMMANDTARGET pCmdTarg = NULL; if (!m_wb.m_hWnd) { TRACE("Web Browser Control not yet created.\n") return; } pDisp = m_wb.GetDocument(); if (!pDisp) { TRACE("Unable to get document from Web Browser.\n"); return; } // The document controls the availability of commands items, // so get the OLE command target interface from the document hr = pDisp->QueryInterface(IID_IOleCommandTarget, (LPVOID*)&pCmdTarg); if (pCmdTarg) { // Now use the command target to do something useful // like (un-)zoom the page OLECMD rgCmd[1] = {{OLECMDID_ZOOM, 0}}; // Is the command available for execution? hr = pCmdTarg->QueryStatus(NULL, 1, rgCmd, NULL); if (SUCCEEDED(hr) && OLECMDF_ENABLED == rgCmd[0].cmdf) { TRACE("Zoom enabled.\n"); VARIANT vaZoomFactor; // Input arguments VariantInit(&vaZoomFactor); V_VT(&vaZoomFactor) = VT_I4; V_I4(&vaZoomFactor) = fontSize; hr = pCmdTarg->Exec(NULL, OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vaZoomFactor, NULL); VariantClear(&vaZoomFactor); } else { TRACE("Unable to query for status of command ; (OLECMDID_ZOOM).\n"); } } else { TRACE("Unable to get command target from Web Browser ; document.\n"); } if (pCmdTarg) pCmdTarg->Release(); // release document's command target if (pDisp) pDisp->Release(); // release document's dispatch interface } Steps To Run
|
Additional query words: SCALE SCALING WEBBROWSER
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |