如何为动态创建的按钮设置和系统一样的字体

HisinWang 2012-11-21 05:18:52
我使用如下的代码动态创建按钮:

对话框类的成员变量:
CButton *m_pMyButton;
按钮响应函数:
m_pMyButton = new CButton();
CRect rcBtn(0, 0, 100, 20);
m_pMyButton->Create(TEXT("Button1"), WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON,
rcBtn, this, 1000);

但是创建的按钮的字体和系统默认的不一致
如下图所示

上面那个红线框住的是动态创建的
下面那个是系统默认的
系统默认的字体如图所示:

请问我应该如何在
CreateFont里面设置蚕食
然后m_pMyButton->SetFont(&m_font);
才可以达到和系统里面一样大小,类型的字体
...全文
172 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
HisinWang 2012-11-22
  • 打赏
  • 举报
回复
引用 5 楼 SXJIAKE 的回复:
直接取父窗口的字体拿来用: m_pMyButton->SetFont(m_pMyButton->GetParent()->GetFont()); 如果你有父窗口的类变量,可以直接用: m_pMyButton->SetFont(pmyXXXWnd->GetFont());
谢谢大侠 结贴给分 谢谢各位
ls443085074 2012-11-22
  • 打赏
  • 举报
回复
引用 5 楼 SXJIAKE 的回复:
直接取父窗口的字体拿来用: m_pMyButton->SetFont(m_pMyButton->GetParent()->GetFont()); 如果你有父窗口的类变量,可以直接用: m_pMyButton->SetFont(pmyXXXWnd->GetFont());
这个答案直接简单哈
看不见的裂痕 2012-11-22
  • 打赏
  • 举报
回复
直接GetFont然后SetFont这个效果最好。 自己建立Font会对应不上
这个娜戒海了 2012-11-22
  • 打赏
  • 举报
回复
CClientDC dc(this); CFont l_font; LOGFONT lf; lf.lfHeight = 12; strcpy(lf.lfFaceName, "Arial"); // Need a face name "Arial". l_font.CreateFontIndirect(&lf); CFont* l_old_font = dc.SelectObject(&l_font); ............省略号里面用你的set dc.SelectObject(l_old_font); // Delete the font object. l_font.DeleteObject();
「已注销」 2012-11-22
  • 打赏
  • 举报
回复
直接取父窗口的字体拿来用: m_pMyButton->SetFont(m_pMyButton->GetParent()->GetFont()); 如果你有父窗口的类变量,可以直接用: m_pMyButton->SetFont(pmyXXXWnd->GetFont());
HisinWang 2012-11-21
  • 打赏
  • 举报
回复
自己在顶一下 求高手解答
HisinWang 2012-11-21
  • 打赏
  • 举报
回复
能具体给出参数怎么给吗 0, 0, 0x1各代表什么意思? 谢谢大牛了
九州剑王 2012-11-21
  • 打赏
  • 举报
回复
RC文件编辑一下:FONT 9, "MS Sans Serif", 0, 0, 0x1
HisinWang 2012-11-21
  • 打赏
  • 举报
回复
请各位大侠帮下忙 谢谢!!!!!!

15,980

社区成员

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

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