Exemplo n.º 1
0
void CMSOffice2007DemoView::SyncFont()
{
	USES_CONVERSION;

	CString strFontName;


	// get the current font from the view and update
	WPD_CHARFORMAT cf = GetCharFormatSelection();

	CMFCRibbonBar* pRibbon = ((CMainFrame*) GetTopLevelFrame())->GetRibbonBar();
	ASSERT_VALID(pRibbon);

	CMFCRibbonFontComboBox* pFontCombo = DYNAMIC_DOWNCAST(CMFCRibbonFontComboBox, pRibbon->FindByID(ID_FONT_FONT));

	if (pFontCombo != NULL && !pFontCombo->HasFocus())
	{
		if ((cf.dwMask &(CFM_FACE|CFM_CHARSET)) == (CFM_FACE|CFM_CHARSET))
		{
#if _MSC_VER >= 1300
			strFontName = cf.szFaceName;
#else
			strFontName = A2T(cf.szFaceName);
#endif
			pFontCombo->SetFont(strFontName, DEFAULT_CHARSET, TRUE);
		}
		else
		{
			pFontCombo->SetText(_T(""));
		}
	}

	CMFCRibbonComboBox* pFontSizeCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_FONT_FONTSIZE));
	if (pFontSizeCombo != NULL)
	{
		pFontSizeCombo->SetEditText(TwipsToPointString(cf.yHeight));
	}

	SetFocus();
}