【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只会更改对话框的字体,并不会修改设置好的字形和大小

相关推荐
星马梦缘21 小时前
算法与数据结构
数据结构·c++·算法·动态规划·克鲁斯卡尔·kahn
你的冰西瓜21 小时前
C++中的array容器详解
开发语言·c++·stl
Ccjf酷儿21 小时前
C++语言程序设计 (郑莉)第六章 数组、指针和字符串
开发语言·c++
陌路2021 小时前
C++28 STL容器--array
开发语言·c++
im_AMBER1 天前
Leetcode 100 在链表中插入最大公约数
数据结构·c++·笔记·学习·算法·leetcode·链表
Z1Jxxx1 天前
删除字符串2
开发语言·c++·算法
你的冰西瓜1 天前
C++中的set容器详解
开发语言·c++·stl
苦藤新鸡1 天前
9.找到字符串中所有字母异位词
数据结构·c++·算法·力扣
令狐掌门1 天前
C++ io_uring介绍
c++·io_uring
青小莫1 天前
C++之类和对象(下)
java·开发语言·c++