SetWindowText的秘密

CharlesPrince 2007-02-12 01:14:42
和大家谈一下这个API函数的秘密吧,代码如下:
CFont tmpFont,*oldFont;
tmpFont.CreateFont(12, 0, 0, 0, FW_SEMIBOLD, FALSE, FALSE,0,0,0,0,0,0, "黑体");
CDC *pTmpDC=m_panelAnalyze.GetDlgItem( IDC_SICKINFO )->GetDC();
oldFont=pTmpDC->SelectObject(&tmpFont);//设置DC的当前字体
(m_panelAnalyze.GetDlgItem( IDC_SICKINFO ))->SetWindowText( str );
大家猜猜,这样的设置之后,WindowText的字体会变化吗?
...

答案是可以变化,看来SetWindowText API函数其实是调用了DC的TextOut方法进行操作的。
...全文
220 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dazedase 2007-02-12
  • 打赏
  • 举报
回复
试验了一下,可是无效 :( Why?

CFont tmpFont,*oldFont;
tmpFont.CreateFont(22, 0, 0, 0, FW_SEMIBOLD, FALSE, FALSE,0,0,0,0,0,0, "黑体");
CDC *pTmpDC=GetDlgItem( IDC_EDIT2 )->GetDC();
oldFont=pTmpDC->SelectObject(&tmpFont);
GetDlgItem( IDC_EDIT2 )->SetWindowText( "黑体" );

//tmpFont.DeleteObject();

15,975

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧