请问编写Activex复合控件时,如何设置字体??????? 我做了一个Activex复合控件,在控件的对话框上我已经调整好了字体(和调用者使用一样的字体),可是当显示时,调用者的字体和控件的字体不一样,请问为什么?如果需要实现设置字体,那么该如何做?(我用向导映射的stock字体属性没有get和put方法,奇怪)请给一个例子! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在Dialog 的 WM_INITDIALOG处理函数里,对每个需要设置字体的控件,发送WM_SETFONT 来设置你所需要的字体属性。 WaterUsage(尼伯龙根的指环) : 必须每一个控件单独的设置字体吗?如果有很多static,也要一个一个的设置字体?对整个对话框设置字体不行吗? 你得控件包含dialog template resource?可以参考msdn上内存dialog template resource class得代码设置字体BOOL CDlgTempl::SetFontInfoW(WORD wPointSize, const WCHAR* szFaceName){ if (m_pFaceName) { delete []m_pFaceName; m_dlgTemplate.style &= ~DS_SETFONT; m_nPointSize = 0; } if (!szFaceName) { TRACE (_T("Warning : No Font Specified\n")); return TRUE; } m_nFaceNameLength = (wcslen(szFaceName) + 1) * sizeof(WCHAR); m_pFaceName = new BYTE[m_nFaceNameLength]; if (!m_pFaceName) { m_nFaceNameLength = 0; AfxThrowMemoryException(); return FALSE; } wcscpy((WCHAR*)m_pFaceName, szFaceName); m_dlgTemplate.style |= DS_SETFONT; m_nPointSize = wPointSize; return TRUE;}//http://support.microsoft.com/support/kb/articles/q155/2/57.asp masterz(MS MVP): 我发现并不是字体不好用,而是我所要设置的MS Sans Serif字体不行,而且就是MS Sans Serif的9号字体在中文环境下不行,其他的都可以,不知道是不是windows的BUG,解决方法是调用者使用 MS Sans Serif9号,控件在中文环境下使用宋体9号即可 另外谢谢你的指教! VS中的标签框是什么啊 cbitmap以及图形按钮的问题 vc学到什么程度就找份工作?? 学习孙鑫老师VC++深入详解第4课时遇到的疑问 关于小区宽带上网的Web验证过程? 请问在vc中怎么创建一个ini文件亚!请详细点!谢谢! 求要图示控件,比如柱状图显示之类的。 谁能提供一个使用多媒体时间函数的例程?高分! 一个相当简单的问题!送分,关于字符串的转化! 如何实现可获取任意文件的图标,并能保存到文件中,有原代码最好. 如何用VC取得ODBC数据源中的所有数据源 明年要毕业了,想做个东西,大家给点意见
必须每一个控件单独的设置字体吗?如果有很多static,也要一个一个的设置字体?对整个对话框设置字体不行吗?
可以参考msdn上内存dialog template resource class得代码设置字体
BOOL CDlgTempl::SetFontInfoW(WORD wPointSize, const WCHAR* szFaceName)
{
if (m_pFaceName)
{
delete []m_pFaceName;
m_dlgTemplate.style &= ~DS_SETFONT;
m_nPointSize = 0;
} if (!szFaceName)
{
TRACE (_T("Warning : No Font Specified\n"));
return TRUE;
} m_nFaceNameLength = (wcslen(szFaceName) + 1) * sizeof(WCHAR);
m_pFaceName = new BYTE[m_nFaceNameLength];
if (!m_pFaceName)
{
m_nFaceNameLength = 0;
AfxThrowMemoryException();
return FALSE;
} wcscpy((WCHAR*)m_pFaceName, szFaceName); m_dlgTemplate.style |= DS_SETFONT;
m_nPointSize = wPointSize;
return TRUE;
}
//http://support.microsoft.com/support/kb/articles/q155/2/57.asp
我发现并不是字体不好用,而是我所要设置的MS Sans Serif字体不行,而且就是MS Sans Serif的9号字体在中文环境下不行,其他的都可以,不知道是不是windows的BUG,解决方法是调用者使用 MS Sans Serif9号,控件在中文环境下使用宋体9号即可
另外谢谢你的指教!