问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MFC中怎么修改对话框标题字体大小(属性里修改除外)?

发布网友 发布时间:2022-05-03 05:01

我来回答

1个回答

热心网友 时间:2023-10-10 06:27

1 VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体。对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了。 
    例子: 
    1、改静态文体的ID,如:IDC_STATIC1 
    2、添加一个Edit控件,建立一个关联的控件m_editControl。 
    3、在OnInitDialog中添加如下代码: 
CFont * f; 
     f = new CFont; 
     f->CreateFont(16, // nHeight 
     0, // nWidth 
     0, // nEscapement 
     0, // nOrientation 
     FW_BOLD, // nWeight 
     TRUE, // bItalic 
     FALSE, // bUnderline 
     0, // cStrikeOut 
     ANSI_CHARSET, // nCharSet 
     OUT_DEFAULT_PRECIS, // nOutPrecision 
     CLIP_DEFAULT_PRECIS, // nClipPrecision 
     DEFAULT_QUALITY, // nQuality 
     DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily 
     _T("Arial")); // lpszFac 
   
     GetDlgItem(IDC_STATIC1)->SetFont(f); 
需要注意的是,这里我们使用的是CFont指针,而不是普通的CFont局部变量, 在非MFC程序,首先用CreateFont来建立一个字体句柄,然后再用SendMessage发给控件WM_SETFONT消息,将建立的字体句柄赋值过去,就可以了。

实例下载:http://www.china-askpro.com/download/CtrlFont.zip

 
2 但是整个对话框或窗口的字体的大小,使用对话框或窗口的SetFont()函数却没有任何的作用.可以在初始化时遍历每个控件分别设置来处理,但这里说另一种使用回调函数的简单方法:
   :调用系统的API:::EnumChildWindows(). ,传入回调函数和重新定义的字体.(第一个参数不用管啊,本来就有啊)
)
   1)在文档视图结构中CMainFrame::OnCreate().中调用::EnumChildWindows(). 实现所有窗口和子窗口字体改变
   2) 在对话框的OnInitDialog(). 中调用::EnumChildWindows(). 改变对话窗上的所有控件.

回调函数如下:

// lParam is a pointer to CFont object
BOOL __stdcall SetChildFont(HWND hwnd, LPARAM lparam)
{
  CFont *pFont = (CFont*)lparam;
  CWnd *pWnd = CWnd::FromHandle(hwnd);
  pWnd->SetFont(pFont);
  return TRUE;
}
 
使用1:
BOOL CAboutDlg::OnInitDialog() 
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here
  ::EnumChildWindows(m_hWnd, ::SetChildFont, (LPARAM)g_Font.GetFont());
    
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}


使用2:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
        return -1;
    
    if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
        | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
        !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    {
        TRACE0("Failed to create toolbar\n");
        return -1;      // fail to create
    }

    if (!m_wndStatusBar.Create(this) ||
        !m_wndStatusBar.SetIndicators(indicators,
          sizeof(indicators)/sizeof(UINT)))
    {
        TRACE0("Failed to create status bar\n");
        return -1;      // fail to create
    }

    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);

  ::EnumChildWindows(m_hWnd, ::SetChildFont, (LPARAM)g_Font.GetFont());

    return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巧师傅榴莲千层蛋糕(6寸500g)-适用对象 巧师傅 榴莲千层蛋糕 6寸 500g-马来西亚苏丹王榴莲肉,口感鲜甜软糯_百... 巧师傅榴莲千层蛋糕500g-精选苏丹王榴莲果肉,口感浓郁 巧师傅苏丹王榴莲千层蛋糕-适用对象 阿卡丽和卡特琳娜,哪一个比较好。 英雄联盟阿卡丽和卡特琳纳哪个比较好…为什么? 求大神分析 阿卡丽和卡特琳娜单挑 谁会赢? 河北5+3临床医学有哪些学校 ...块数比20多,比40少,5块5块地数正好数完,2块2块地数也正好数完?_百... ...比20小,它3个3个数或4个4个数都正好数完,这个数是多少..._百度知... 只有对方的,却搜索不到他,怎么办 如何修改 Java 中的 DialogInput 字体 PDF中提示"字体Dialog.bold包含错误的/Flags" 前任的搜不到了 java中如何修改JDialog、JLable等汉字的显示字体? JOptionPane.showConfirmDialog 字体问题,高分求解!!! 分手后一个月前男友连搜索都屏蔽了说明什么 如何改变Dialog中字体颜色 怎么改变progressDialog消息字体字号 java 逻辑字体Dialog是什么样子的字体,与默认字体有区别嘛 JAVA jLabel1.setFont(new Font("Dialog",0,12)); 这是什么字体 《我的世界》豹猫怎么驯服 delphi oracle数据库查询 三星note3怎么设置锁屏手势 您好,我的手机是三星GT-I9260,接电话的时候老是碰着屏幕,怎么设置接了电话后自动锁屏? 三星手机开机一段时间后才能锁屏是怎么回事 怎么设置三星a90不在手上才能锁屏? 苹果4HOME是哪个键 阿拉qq密码潜伏者8.1下载地址 谁有阿拉qq密码潜伏者盗号软件? 分手了删除了微信她又把微信搜索打开了 通过手机号能找到微信,她什么意思? vb使用common dialog使用字体时提示没有安装字体?高手帮助 湿核桃仁怎么保湿 女友分手后老拉黑我,我搜不到,新我搜到了,拉黑,加不 安卓怎么修改系统“DIALOG”风格? 我想给MFC生成的对话框修改字体,字大小也要改下,怎么修改? 女友分手后老拉黑我,我搜不到,新我搜到了,拉黑,加不 jquery的dialog怎么设置内容的样式字体和控件都很大 分手后,对方的微信不动,什么都看不出来,是不是就代表他放下了 Qt 给QMainWindow设置style sheet后,无法给QDialog设置字体 我和前男友分手了,微信删除,然后不准任何方式搜到我,抖音设置隐私不准搜到我, Microsoft Common Dialog Control 6.0怎么设定只显示8到12大小的字体 分手后前男友和我联系的微信都不上了,动态也没有。 WinForm窗体中调用FontDialog、ColorDialog实现字体、颜色设置保存成文... 和女情人分手了两三个月了,她一直有加我微信,最近这十天没加,微信也设置手机号搜索不到,不过今天又 显示字体对话框 分手了,刚把他微信删除了,然后再搜他的看他状态时,发现看不了朋友圈了,我想问是不是他也把我删 跪求!!!用【字体】和【颜色】对话框设置文本框文字 婚外情分手了,男情人为什么不让她搜到 全国反诈骗中心网站