• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

如何改变对话框上所有控件的字体

hldwkl 2008-12-04 03:38:35
通过CFontDialog选择字体后会将对话框上所有控件字体改变不是单独的某个控件
就像对话框属性里面的字体一样。
...全文
170 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
guogangj 2008-12-05
看我的!

BOOL __stdcall SetChildFont(HWND hwnd, LPARAM lparam)
{
SendMessage(hwnd, WM_SETFONT, lparam, TRUE);
return TRUE;
}

//在对话框消息处理中
LRESULT CALLBACK LouZhu_DlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
//...
EnumChildWindows(hwndDlg, SetChildFont, (LPARAM)GetStockObject(DEFAULT_GUI_FONT));
break;
//...
}
//...
}


根据你的需要,你还可以更换为别的字体,我取的是系统默认字体,这样无论在哪种语言环境下都有较好的显示,在简体中文环境下貌似是9号宋体字。
回复
ilovedrv 2008-12-04
1. 修改对话框上的所有字体,直接在资源编辑器里打开对话框,右键属性,修改字体选项

2. 改对话框某个控件字体,在程序中获取该控件窗口指针 GetDlgItem,然后SetFont()
回复
Learn-anything 2008-12-04
mark
回复
zzz822163 2008-12-04
http://www.diybl.com/course/3_program/c++/cppjs/2007918/71942_2.html
回复
cnzdgs 2008-12-04
在对话框类中定义一个CFont对象,在显示CFontDialog之后,先调用CFont的DeleteObject,然后调用CreateFontIndirect,参数给CFontDialog对象的m_lf成员地址,然后用FindWindowEx遍历所有子控件,逐一SetFont。
回复
hldwkl 2008-12-04
要动态的全改,我在CFontDialog里选择什么字体,对话框上所有的控件字体都要改
回复
id27145 2008-12-04
CDialog::OnSetFont()
Override to specify the font that a dialog-box control is to use when it draws text.
-- msdn
回复
全改容易。
回复
hldwkl 2008-12-04
在说一遍不是修改单独某个控件的字体是要全改,
怎么样修改对话框的字体属性呢?
回复
Sat_shan 2008-12-04
如果修改对话框的字体属性,这样会将对话框中所有的控件的字体属性进行修改。
如果想单独修改某个控件的字体属性,单独获得控件句柄SetFont修改字体
回复
hldwkl 2008-12-04
另外这个要通过代码实现
回复
hldwkl 2008-12-04
具体点,我不是太明白谢谢了
回复
ToperRay 2008-12-04
全改很容易,改改对话框字体属性就可以了
回复
jogger007 2008-12-04
资源试图对话框属性上有的
回复
cabbageA 2008-12-04
好像是在对话框的create消息中改cs。
回复
fishion 2008-12-04
那就把字体设置为对话框的字体就行了,对话框会统一改变的,
要不就是把对话框中的控件的句柄都找出来,有相关的函数的,再改字体
回复
healer_kx 2008-12-04
你是想全改啊,还是想单改啊?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-12-04 03:38
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……