为了能方便的更改如背景颜色,字体等属性。我使用Microsoft Forms2.0 Label控件取代传统的Static控件。
设置其它属性都还OK,但是在设置Font属性的时候出现了问题。ClabelControl类没有自己的SetFont函数,只有一个GetFont,并且返回值不是CFont而是COleFont。ClabelControl继承自CWnd,想必它直接使用了CWnd::SetFont。可是做下面的事情的时候,完全没有效果m_stFont.CreatePointFont(120,"Arial");
m_Static.SetFont(&m_stFont);m_stFont是对话框的一个成员是CFont类型。
m_Static是ClabelControl类型,并且它是调用Create函数动态创建的。如果哪位用过ClabelControl或者遇到同样的问题,有解决方法的请不吝赐教,谢谢!
设置其它属性都还OK,但是在设置Font属性的时候出现了问题。ClabelControl类没有自己的SetFont函数,只有一个GetFont,并且返回值不是CFont而是COleFont。ClabelControl继承自CWnd,想必它直接使用了CWnd::SetFont。可是做下面的事情的时候,完全没有效果m_stFont.CreatePointFont(120,"Arial");
m_Static.SetFont(&m_stFont);m_stFont是对话框的一个成员是CFont类型。
m_Static是ClabelControl类型,并且它是调用Create函数动态创建的。如果哪位用过ClabelControl或者遇到同样的问题,有解决方法的请不吝赐教,谢谢!
试试消息 WM_SETFONThFont = (HFONT)::SendMessage(hWnd, WM_GETFONT, 0, 0);
GetObject(hFont, sizeof(LogFont), &LogFont);::SendMessage(::GetDlgItem(hwndDlg, INPUT_ID_BTN1), WM_SETFONT, (LPARAM)hFont, MAKELPARAM(TRUE, 0));
m_stFont.CreatePointFont(120,"Arial");
m_Static.SetFont(&m_stFont);
同样是上面的代码,如果m_Static是CStatic类型,那么就可以达到目的。
个人感觉可能是CLabelControl在实现的时候疏漏了些东西。呵呵个人观点。我倒很希望是自己错了。这样可以少一些麻烦。
苦恼啊!
COleFont font=m_lable.GetFont();
CY cy;
cy.int64=240000;
font.SetSize(cy);
m_lable.SetRefFont(font);
只怪我自己不够仔细,光去找SetFont了,其实CLabelControl自带一个SetRefFont。
虚惊一场,哈哈。同样谢谢zzz3265(zzz)