Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Implements the stock Font property and encapsulates the functionality of a Windows font object and the IFont interface.
Syntax
class CFontHolder
Members
Public Constructors
| Name | Description |
|---|---|
| CFontHolder::CFontHolder | Constructs a CFontHolder object. |
Public Methods
| Name | Description |
|---|---|
| CFontHolder::GetDisplayString | Retrieves the string displayed in a container's property browser. |
| CFontHolder::GetFontDispatch | Returns the font's IDispatch interface. |
| CFontHolder::GetFontHandle | Returns a handle to a Windows font. |
| CFontHolder::InitializeFont | Initializes a CFontHolder object. |
| CFontHolder::QueryTextMetrics | Retrieves information for the related font. |
| CFontHolder::ReleaseFont | Disconnects the CFontHolder object from the IFont and IFontNotification interfaces. |
| CFontHolder::Select | Selects a font resource into a device context. |
| CFontHolder::SetFont | Connects the CFontHolder object to an IFont interface. |
Public Data Members
| Name | Description |
|---|---|
| CFontHolder::m_pFont | A pointer to the CFontHolder object's IFont interface. |
Remarks
CFontHolder does not have a base class.
Use this class to implement custom font properties for your control. For information on creating such properties, see the article ActiveX Controls: Using Fonts.
Inheritance Hierarchy
CFontHolder
Requirements
Header: afxctl.h
CFontHolder::CFontHolder
Constructs a CFontHolder object.
explicit CFontHolder(LPPROPERTYNOTIFYSINK pNotify);
Parameters
pNotify
Pointer to the font's IPropertyNotifySink interface.
Remarks
You must call InitializeFont to initialize the resulting object before using it.
CFontHolder::GetDisplayString
Retrieves a string that can be displayed in a container's property browser.
BOOL GetDisplayString(CString& strValue);
Parameters
strValue
Reference to the CString that is to hold the display string.
Return Value
Nonzero if the string is successfully retrieved; otherwise 0.
CFontHolder::GetFontDispatch
Call this function to retrieve a pointer to the font's dispatch interface.
LPFONTDISP GetFontDispatch();
Return Value
A pointer to the CFontHolder object's IFontDisp interface. Note that the function that calls GetFontDispatch must call IUnknown::Release on this interface pointer when done with it.
Remarks
Call InitializeFont before calling GetFontDispatch.
CFontHolder::GetFontHandle
Call this function to get a handle to a Windows font.
HFONT GetFontHandle();
HFONT GetFontHandle(
long cyLogical,
long cyHimetric);
Parameters
cyLogical
Height, in logical units, of the rectangle in which the control is drawn.
cyHimetric
Height, in MM_HIMETRIC units, of the control.
Return Value
A handle to the Font object; otherwise NULL.
Remarks
The ratio of cyLogical and cyHimetric is used to calculate the proper display size, in logical units, for the font's point size expressed in MM_HIMETRIC units:
Display size = ( cyLogical / cyHimetric) X font size
The version with no parameters returns a handle to a font sized correctly for the screen.
CFontHolder::InitializeFont
Initializes a CFontHolder object.
void InitializeFont(
const FONTDESC* pFontDesc = NULL,
LPDISPATCH pFontDispAmbient = NULL);
Parameters
pFontDesc
Pointer to a font description structure ( FONTDESC) that specifies the font's characteristics.
pFontDispAmbient
Pointer to the container's ambient Font property.
Remarks
If pFontDispAmbient is not NULL, the CFontHolder object is connected to a clone of the IFont interface used by the container's ambient Font property.
If pFontDispAmbient is NULL, a new Font object is created either from the font description pointed to by pFontDesc or, if pFontDesc is NULL, from a default description.
Call this function after constructing a CFontHolder object.
CFontHolder::m_pFont
A pointer to the CFontHolder object's IFont interface.
LPFONT m_pFont;
CFontHolder::QueryTextMetrics
Retrieves information on the physical font represented by the CFontHolder object.
void QueryTextMetrics(LPTEXTMETRIC lptm);
Parameters
lptm
A pointer to a TEXTMETRIC structure that will receive the information.
CFontHolder::ReleaseFont
This function disconnects the CFontHolder object from its IFont interface.
void ReleaseFont();
CFontHolder::Select
Call this function to select your control's font into the specified device context.
CFont* Select(
CDC* pDC,
long cyLogical,
long cyHimetric);
Parameters
pDC
Device context into which the font is selected.
cyLogical
Height, in logical units, of the rectangle in which the control is drawn.
cyHimetric
Height, in MM_HIMETRIC units, of the control.
Return Value
A pointer to the font that is being replaced.
Remarks
See GetFontHandle for a discussion of the cyLogical and cyHimetric parameters.
CFontHolder::SetFont
Releases any existing font and connects the CFontHolder object to an IFont interface.
void SetFont(LPFONT pNewFont);
Parameters
pNewFont
Pointer to the new IFont interface.