【MFC】对话框属性:Use System Font(使用系统字体)


前言

本文介绍对话框属性中的Use System Font(使用系统字体),同时给出相关示例便于理解。


目录

  • [1 位置](#1 位置)
  • [2 详解](#2 详解)
  • [3 示例](#3 示例)

1 位置

首先介绍一下这个属性在哪里。

  1. 在资源视图中双击对话框节点,打开该对话框;
  2. 鼠标右键工作区空白处,单击属性
  3. 此时在属性对话框中就可以看到该属性了;

2 详解

  • 属性名: 使用系统字体 (Use System Font)

  • 详解: 使用系统字体可以确保你的应用程序对话框与当前操作系统上所有其他系统对话框(如"打开文件"对话框)和使用系统字体的应用程序保持一致的视觉风格。

  • 作用

    1. 决定了对话框及其上所有控件使用的默认字体。
    2. 确保视觉一致性和现代化。
    3. 正确计算对话框单位 (Dialog Units - DLUs):MFC 对话框布局(控件的位置 x, y 和尺寸 cx, cy)并非直接使用像素 (pixels),而是使用一种与字体相关的相对单位------对话框单位。(使用 DLU 布局可以确保当对话框字体改变(例如从 96 DPI 切换到 120 DPI,或在不同语言下)时,控件能自动按比例缩放,保持原有的布局比例,避免文字显示不全或控件重叠。)
    4. 简化多语言本地化:使用系统字体并依赖 DLU 进行布局,使得你在翻译对话框文本后,只需简单地调整一下控件的大小和位置(依然用 DLU),就能适应新的文本长度,而不需要为每种语言完全重新设计布局。
    5. 更好的高DPI(缩放)支持:在高DPI显示设置下(如 150%),Windows 会进行缩放。如果使用系统字体,系统会选择适合该缩放比例的字体大小,并且基于此字体计算出的 DLU 也能正确缩放,从而保证整个对话框布局清晰、合理。使用固定字体很可能在高DPI下导致布局错乱和文字模糊。
  • 语法格式

    • True:使用(没有具体要求时,优先考虑)
    • False:不使用
      MS Shell Dlg
  • 其实这并不是一种特殊的字体,而是一种字体映射,指向当前系统的字体。

  • 将对话框字体设置为MS Shell Dlg后,对话框的字体为当前系统的默认字体。

  • 在中文版Windows 10操作系统中,MS Shell Dlg默认映射为Microsoft Sans Serif字体。

3 示例

  • 新创建的对话框一般默认为True,此时使用系统字体;

  • 修改字体为隶书、字形修改为粗偏斜体、大小修改为18,此时使用系统字体
    属性会自动变更为False

  • 此时直接设置使用系统字体属性为True只会更改对话框的字体,并不会修改设置好的字形和大小

相关推荐
QiLinkOS3 小时前
第三视觉理解徐玉生与他的商业活动(28)
大数据·c++·人工智能·算法·开源协议
星夜夏空993 小时前
C++学习(2) —— 类与对象基础
开发语言·c++·学习
会周易的程序员5 小时前
microLog 后端开发指南
开发语言·c++·物联网·设计模式·日志·iot·aiot
汉克老师6 小时前
GESP2026年6月认证C++二级( 第三部分编程题(2、菱形))精讲
c++·找规律·绘制图形·对角线·双重循环
☆cwlulu6 小时前
try-throw-catch异常捕获流程
开发语言·c++
王老师青少年编程7 小时前
2026年6月GESP真题及题解(C++五级):排排坐
c++·题解·真题·gesp·五级·2026年6月·排排坐
郝学胜-神的一滴7 小时前
Qt 高级编程 034:深耕QWidget底层内核—彻底吃透无边框窗口设计核心原理
开发语言·c++·qt·程序人生·软件开发·用户界面
不会写代码的ys7 小时前
C++复习篇
java·开发语言·c++
aichitang20248 小时前
数论变换(NTT)
c++·算法·fft·ntt
_olone8 小时前
AtCoder Beginner Contest 465 D - X to Y
c++·算法