请问一下,在OnCtlColor函数使用CreateFont无法改变字体样式,怎么回事? GetDlgItem(XXX)->SetFont();这句话放到什么位置呢? 如2楼所说的放到OnInitDialog()? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetDlgItem(XXX)->SetFont();这句话放到什么位置呢? 如2楼所说的放到OnInitDialog()? 试了下,不行啊。 代码如下:CFont font; font.CreateFont( 48, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily _T("华文楷体") // lpszFacename ); GetDlgItem(IDC_TEST)->SetFont(&font,TRUE); 不清楚你代码怎么写,干脆CFont font;定义为类成员吧。 在OnCtlColor函数中使用CreateFont函数新建字体???当初了这个函数,字体就销毁了,可是这时候还没画呢,也就是时机不对。字体改为成员,OnInitDialog中创建,OnCtlColor中选中 在OnInitDialog中设置字体及大小:CFont *m_font=new CFont;m_font->CreatePointFont(300,_T("华文楷体"));GetDlgItem(IDC_STATIC)->SetFont(m_font); 楼主,7,8,9楼上说的对,该CFont font;需要定义成类的成员变量。然后在OnInitDialog();里面SetFont(). 非常感谢,解决了, 但还有个问题想问一下,如果这样操作的话,比如说我的5个控件都需要改变颜色,改变为不同的字体,是不是要新建5个CFont对像呢? 可以新建5个CFont对象,但是在每次设置完字体后,记得要font.DeleteObject(); 防止内存泄露。还有你的5个IDC_STATIC控件ID名字不能相同。 还有几个问题想请教一下,我在对话框中拖了2个文本控件,ID分别为IDC_TEST1、IDC_TEST2,我在OnInitDialog中新建了CFont对像,代码如下:CFont* pfont = new CFont;CFont* pfont1 = new CFont;pfont->CreatePointFont(220,_T("楷体"));GetDlgItem(IDC_TEST)->SetFont(pfont,TRUE);pfont->DeleteObject();pfont1->CreatePointFont(220,_T("隶书"));GetDlgItem(IDC_TEST)->SetFont(pfont1,TRUE);pfont1->DeleteObject();结果是字体颜色可以改,但文字的大小及样式不能改,如果将绿色代码注释掉,文字的大小及样式又可以更改,请问是怎么回事啊?如果不注释掉会不会导致内存泄露? 楼主好啊,我现在不能修字体的大小代码如下:在OnInitDialog()中 m_font->CreatePointFont(300,_T("华文楷体")); GetDlgItem(IDC_SHOW_IMAGE1)->SetFont(m_font,TRUE); 在OnBnClickedFeatureMatch()中选中,然后输出CClientDC dc1(this); CString XY = " ";dc1.SelectObject(m_font);TextOut(hDC_Image1,descriptors1[i].x(),descriptors1[i].y(),XY,2);但是现在仍不能改变字体,求助 求改变颜色怎么实现 Orz 俄罗斯方块过界怎么判断啊?还有怎么实现变形?求解 为什么要为难我呢? ◇◆◇ 我来散20分,第10个人进来后结贴 ◇◆◇ 钩子dll如何实现界面操作? ADO SQL语句错误, 联级更新(在线等) CListCtrl数据表格怎么打印呀!! _beginthread函数的疑问 VC中如何动态创建一个Button并为其加之一OnClick的消息响应函数 这是什么原因? 请问:基于对话框的动态菜单问题。 MFC写的activex控件在php页面中为什么加载不了? 程序安装包注册COM组件
GetDlgItem(XXX)->SetFont();
这句话放到什么位置呢? 如2楼所说的放到OnInitDialog()?
试了下,不行啊。
代码如下:CFont font;
font.CreateFont(
48, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
_T("华文楷体") // lpszFacename
);
GetDlgItem(IDC_TEST)->SetFont(&font,TRUE);
CFont *m_font=new CFont;
m_font->CreatePointFont(300,_T("华文楷体"));
GetDlgItem(IDC_STATIC)->SetFont(m_font);
里面SetFont().
还有几个问题想请教一下,我在对话框中拖了2个文本控件,ID分别为IDC_TEST1、IDC_TEST2,我在OnInitDialog中新建了CFont对像,代码如下:CFont* pfont = new CFont;
CFont* pfont1 = new CFont;
pfont->CreatePointFont(220,_T("楷体"));
GetDlgItem(IDC_TEST)->SetFont(pfont,TRUE);
pfont->DeleteObject();pfont1->CreatePointFont(220,_T("隶书"));
GetDlgItem(IDC_TEST)->SetFont(pfont1,TRUE);
pfont1->DeleteObject();结果是字体颜色可以改,但文字的大小及样式不能改,如果将绿色代码注释掉,文字的大小及样式又可以更改,请问是怎么回事啊?如果不注释掉会不会导致内存泄露?
在OnInitDialog()中 m_font->CreatePointFont(300,_T("华文楷体"));
GetDlgItem(IDC_SHOW_IMAGE1)->SetFont(m_font,TRUE);
在OnBnClickedFeatureMatch()中选中,然后输出
CClientDC dc1(this);
CString XY = " ";
dc1.SelectObject(m_font);
TextOut(hDC_Image1,descriptors1[i].x(),descriptors1[i].y(),XY,2);
但是现在仍不能改变字体,求助