次の方法で共有


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 クラス

階層図

COleControl::GetFont

COleControl::InternalGetFont

COleControl::InvalidateControl

その他の技術情報

COleControl のメンバ