COleControl::OnFontChanged
更新 : 2007 年 11 月
ストック Font プロパティ値が変更されたときに、フレームワークによって呼び出されます。
virtual void OnFontChanged( );
解説
既定の実装では、COleControl::InvalidateControl を呼び出します。コントロールが Windows コントロールをサブクラス化していると、既定の実装ではこれに加えて、コントロールのウィンドウに WM_SETFONT メッセージを送ります。
このプロパティの変更後に通知を受けたいときは、この関数をオーバーライドします。
使用例
void CMyAxCtrl::OnFontChanged()
{
// Always set it to the container's font
if (m_MyEdit.m_hWnd != NULL)
{
IFontDisp* pFontDisp = NULL;
IFont *pFont = NULL;
HRESULT hr;
// Get the container's FontDisp interface
pFontDisp = AmbientFont();
if (pFontDisp)
{
hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID *) &pFont);
if (FAILED(hr))
{
pFontDisp->Release();
return;
}
}
HFONT hFont = NULL;
if (pFont)
{
pFont->get_hFont(&hFont);
m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
}
pFontDisp->Release();
}
// Invalidate the control
m_MyEdit.Invalidate();
m_MyEdit.UpdateWindow();
COleControl::OnFontChanged();
}
必要条件
ヘッダー : afxctl.h
参照
参照
COleControl::InvalidateControl