资源编辑器的单位DLU
前些天优化智勇三国的界面,目标:操作简单,信息明了。有一点体会,与君共享,也欢迎大家指教。CDC类的函数(如:TextOut)的单位是像素,资源编辑器的单位不是像素,当时没在意。发布后,有少量用户页局混乱。原以为是分辨率的问题,其实是字体的问题。宋体小四DLU单位是2像素,宋体小五DLU单位是1.5像素。DLU的优点是什么呢?在资源编辑器中更改字体,对话框和控件都会改变大小,这样布局不会乱。用户设置成大字体,也不会乱。问题的引伸,如何由用户指定字体,SetFont只改变字体不改变窗口大小。
解决方法如下:
#include <afxpriv.h>
int CSanGuoDlg::DoModal()
{
CDialogTemplate dlt;
int nResult;
if (!dlt.Load(MAKEINTRESOURCE(IDD)))
return -1;
dlt.SetFont( "宋体", 9);
LPSTR pdata = (LPSTR)GlobalLock(dlt.m_hTemplate);
m_lpszTemplateName = NULL;
InitModalIndirect(pdata);
nResult = CDialog::DoModal();
// unlock memory object
GlobalUnlock(dlt.m_hTemplate);
return nResult;
}
知识点一,如何设置大字体。
在windows上点击右键
点击“属性”
打开“设置”Tab标签然后点击“高级”
在“常规”标签, 在字体尺寸框中改变的系统 DPI
重启系统
知识点二:如何求DLU等于多少像素。
DLU的一个X方向的坐标单位相当于对话框中所用字体的平均宽度的1/4,Y方向的坐标单位相当于对话框对话框所用字体高度的1/8。注意字体平均宽度的计算并非是所有字符的平均,而是字母a…z(包括大写)的宽度的平均,换句话说,它等于字符串”a…zA…Z”的长度除以52。
资源编辑器的单位DLU的更多相关文章
- MS Project 2007 工期、工时、资源、固定单位、固定工期、固定工时
0. 基本概念 工期:指完成每项项目任务所经历的实际时间,及开始日期和结束时期之差.Project中,工期的默认单位是天. 工时:指将任务分配给资源后,每个资源执行任务的工作时间.Project中,工 ...
- [源代码] SailingEase .NET Resources Tool (.NET 多语言资源编辑器)
我在2016年10月发过一篇博客,介绍了我写过的一个多语言资源文件编辑器,并且做为免费软件发布给了出来. 陆续收到了一些朋友的反馈,有朋友很热心提了很多建议和关心的话,还有朋友发红包过来,让我很感动. ...
- [免费了] SailingEase .NET Resources Tool (.NET 多语言资源编辑器)
这是我2010年左右,写 Winform IDE (http://www.cnblogs.com/sheng_chao/p/4387249.html)项目时延伸出的一个小项目. 最初是以共享软件的形式 ...
- VS资源编辑器常见错误RC1000到RC1208
资源编译器错误RC1000到RC1208 以下主题包括资源编译器错误RC1000至RC1208: 资源编译器致命错误RC1000未知致命错误记下错误的情况下,尝试找出问题,并创建一个重现的测试案例,然 ...
- SailingEase .NET Resources Tool (.NET 多语言资源编辑器)转
转自:http://www.cnblogs.com/sheng_chao/p/5958846.html 软件下载链接 痛点: 通常我们为了让软件支持多语言,会使用 .NET 自带的资源文件来存储不同的 ...
- 资源Createwindow,对应标识符,绑定窗口
问? 定义一个CEdit cedit1:怎么和IDC_EDIT1 关联,可以在CEdit.Create()里传进去或者在DoDataExchange()里面绑定,是不是一定要先弄出个IDC_EDIT1 ...
- .net RESX资源文件
RESX资源文件最大的优势就是: 支持多语言 快速创建资源 管理方便 RESX可以支持多语言,Visual Studio编译后会出现附属程序集(satellite assembly),事实上是连接器( ...
- .NET(C#):浅谈程序集清单资源和RESX资源
原文:.NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
- 部署AlwaysOn第三步:集群资源组的健康检测和故障转移
资源组是由一个或多个资源组成的组,WSFC的故障转移是以资源组为单位的,资源组中的资源是相互依赖的.一个资源所依赖的其他资源必须和该资源处于同一个资源组,跨资源组的依赖关系是不存在的.在任何时刻,每个 ...
- VC++中如何复制对话框资源
法1: 在你的工程中添加另一个工程的rc文件,这时资源视图中就会出现两个rc,从后加的rc中拷贝资源到你自己工程的rc中就可以了. 法2:vc中如何拷贝一个工程的对话框资源到另一个工程 ...
随机推荐
- SciTech-BigDataAIML-Tensorflow-模型的训练与评估: tf.keras.losses + tf.keras.optimizer + tf.keras.metrics
模型的训练: tf.keras.losses 和 tf.keras.optimizer 定义一些模型超参数: num_epochs = 5 batch_size = 50 learning_rate ...
- 2023年9月最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojson json
发现个可以免费下载全国 geojson 数据的网站,推荐一下.支持全国.省级.市级.区/县级.街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3.Echarts等 geojso ...
- 优化UGUI的ScrollRect
http://qiankanglai.me/2015/08/15/LoopScrollRect/ https://github.com/qiankanglai/LoopScrollRect
- Java语言核心特性全解析:从面向对象到跨平台原理
大家好!欢迎来到程序视点,我是你们的老朋友.安戈. 今天我们来聊聊Java这门"老而弥坚"的编程语言.经常有新手问我:"Java到底特殊在哪里?为什么企业开发都爱用Jav ...
- VUE实现Web端多人语音视频聊天
1 多人语音聊天功能介绍 本文展示了如何使用 ZEGO Express SDK 构造多人音视频通话场景,即实现多对多实时音视频聊天互动.用户可在房间内与其余用户进行实时音视频通话,互相推拉流.该场景可 ...
- MyEMS能源管理系统后台配置-网关管理
MyEMS开源能源管理系统适用于建筑.工厂.商场.医院.园区的电.水.气等能源数据采集.分析.报表,还有光伏.储能.充电桩.微电网.设备控制.故障诊断.工单管理.人工智能优化等可选功能. 本文介绍My ...
- C++面试周刊(3):面试不慌,这样回答指针与引用,青铜秒变王者
一.背景 各位老师好 CPP面试冲刺周刊 (c++ weekly)第三期开始了 目标:不是成为C++专家,而是成为C++面试专家 本期内容:指针与引用区别 c++周刊目的陪你一起快速冲击大厂面试 小提 ...
- C#/.NET/.NET Core技术前沿周刊 | 第 51 期(2025年8.18-8.24)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- PHP Trait 解决 PHP 单继承问题
什么是继承? 继承实际上是存在于面向对象程序设计中的两个类之间的一种关系,是面向对象程序设计方法的一个重要手段,通过继承可以更有效地组织程序结构,明确类间的关系,充分利用已有的类来完成更复杂.更深入的 ...
- 将git项目提交到另一个新建的git项目中去,保留提交的历史记录
如何将git项目提交到另一个新建的git项目中去,保留提交的历史记录一.创建git项目二.idea绑定新建远程git仓库三.刷新git远程分支,并切换到新分支四.将老分支提交到新git仓库中如何将gi ...