CStatic *wnd=(CStatic*)GetDlgItem(IDC_STATIC);
CDC *dc=wnd->GetDC();
CFont f1;
f1.CreatePointFont(100,"宋体");
dc->SelectObject(&f1);我想通过获取静态控件的CDC然后修改字体大小,怎么一点反应都没有。
我知道可以用wnd->SetFont()或其他方法可以解决;
但我就想知道为什么用上面的方法会不行。
到底错在哪。
CDC *dc=wnd->GetDC();
CFont f1;
f1.CreatePointFont(100,"宋体");
dc->SelectObject(&f1);我想通过获取静态控件的CDC然后修改字体大小,怎么一点反应都没有。
我知道可以用wnd->SetFont()或其他方法可以解决;
但我就想知道为什么用上面的方法会不行。
到底错在哪。
解决方案 »
- 哪位好心的哥哥姐姐帮忙, 做一道基础题 "定义表示形状的基类Cshape"
- 求帮助写一个settimer和ontimer的最简单例子
- 帖子追问功能
- 请问那里可以下在到MSDN Library January 2001 ,据说是支持VC6的最后一版!
- 在程序运行后,一个变量随着窗口改变而不断改变,如何动态的查看他的值?
- 哪里有api手册,最好是中文简体的????
- 在PASCAL语言中的"集合"概念,如何转化成C语言表示
- 怎么用new动态开多维数组(至少2维吧)??
- 恳请高手解答!!!快崩溃了,关于matlab调用,时好时坏不稳定!!!
- vc中怎样调用bios中断,我怎么找不到bios.
- [求助] OPENGL 构建模型 反向工程 求控制点
- 求助~~~
CFont *pNewFont;
pNewFont->CreateFont(.........);
CStatic将文字绘制出来是在CStatic::OnPaint,其过程大致如下:
1、BeginPaint得到HDC
2、调用GetFont得到其字体,并调用SelectObject设置HDC的字体
3、DrawText绘制文字
4、EndPaint结束
也就是说不管你在外面怎么SelectObject,如果你无法避过第二步,那么一切都是枉然。
所以你还是只能SetFont改变字体,这样第二步得到GetFont才是你所设定的。