博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何计算基于 Visual C++ 中的当前字体对话框框单元
阅读量:3658 次
发布时间:2019-05-21

本文共 2605 字,大约阅读时间需要 8 分钟。

如何计算基于 Visual C++ 中的当前字体对话框框单元

<script type="text/javascript"> </script>

请注意 Microsoft Visual C++.NET (2002) 既支持在托管的代码模型所提供的 Microsoft.NET Framework 也支持非托管本机 Microsoft Windows 代码模型。 本文中的信息仅应用于非托管 Visual C++ 代码。

本页

<script type="text/javascript"> </script>

| <script type="text/javascript"> </script>

概要

计算对话框单元为单位时,GetDialogBaseUnits() 始终假定系统字体。 如果将不任何字体不系统字体返回值可能无法适合对话框。 本文提供了两种替代...计算对话框单元为单位时,GetDialogBaseUnits() 始终假定系统字体。 如果将不任何字体不系统字体返回值可能无法适合对话框。 本文提供了两种替代方法使用可根据当前字体对话框框单元。

<script type="text/javascript"> </script>

更多信息
水平的基本单位相当于的系统字体中字符平均宽度 (以像素为单位)。 GetDialogBaseUnits() 帮助建议用于计算正确的单位以下代码: pixelX...

<script type="text/javascript"> </script> 水平的基本单位相当于的系统字体中字符平均宽度 (以像素为单位)。 GetDialogBaseUnits() 帮助建议用于计算正确的单位以下代码:

pixelX = (dialogunitX * baseunitX) / 4 pixelY = (dialogunitY * baseunitY) / 8

但是,如果您不使用系统字体,您需要执行一些其他计算将右坐标。 下面是两种方法:

方法 1

<script type="text/javascript"> </script> 垂直对话框框单位等于字符高度。 水平对话框框单位等效于对话框的字体的平均字符宽度。 通过查找字母的字符集的平均的文本范围,计算平均字符宽度。 这是必需的因为 tmAveCharWidth 不是精确。 使用以下代码:

void CAboutDlg::OnPaint()    {
CPaintDC dc(this); // device context for painting CFont* pFont = GetFont(); CFont* oldFont = dc.SelectObject(pFont); TEXTMETRIC tm; dc.GetTextMetrics( &tm ); int baseUnitY = tm.tmHeight; CSize size; size = dc.GetTextExtent( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 52); int baseUnitX = (size.cx / 26 + 1) / 2; TRACE("baseUnitX = %d/n", baseUnitX); TRACE("baseUnitY = %d/n", baseUnitY); dc.SelectObject(oldFont); }

 

方法 2

<script type="text/javascript"> </script> 在替代项是更加容易。 MapDialogRect() 使用某坐标处的 x = 4,y = 8 将返回对话框框基本单位,无论对话框的字体。 但是,在大多数的情况下,程序员不需要知道对话框框中的基本单位。 MapDialogRect() 可用于直接任何对话框框单位换算直接与设备坐标。 下面的示例代码演示如何它可以使用查找对话框框中的基本单位:

void CAboutDlg::OnPaint()    {
CPaintDC dc(this); // device context for painting CRect rc( 0, 0, 4, 8 ); MapDialogRect( &rc ); int baseUnitY = rc.bottom; int baseUnitX = rc.right; TRACE("baseUnitX = %d/n", baseUnitX); TRACE("baseUnitY = %d/n", baseUnitY); } 参考线设置”对话框

 

版式参考线

显示布局参考线的设置。

隐藏布局工具。

标尺和参考线

如果启用,则在布局工具中添加标尺;可将参考线放置在标尺中。默认参考线是边距,可以通过拖动来移动它。在标尺中单击以设置参考线。当控件在参考线上面或 旁边移动时,控件将“对齐”参考线。控件附加到参考线上后便与参考线一起移动。如果控件的每一端均附加到参考线上,则当参考线移动时,控件将调整大小。

网格

创建布局网格。新控件自动对齐网格。

网格间距

显示以对话框单元 (DLU) 为单位的网格间距设置。

宽度:DLU

设置以 DLU 为单位的布局网格宽度。水平 DLU 是按四划分的对话框字体的平均宽度。

高度:DLU

设置以 DLU 为单位的布局网格高度。垂直 DLU 是按八划分的对话框字体的平均高度。

有关将资源添加到托管项目的信息,请参见“.NET Framework 开发员指南”中的 。有关手动将资源文件添加到托管项目、访问资源、显示静态资源和将资源字符串分配给属性的信息,请参见 和 。

要求

Win32

 

转载地址:http://pnmfn.baihongyu.com/

你可能感兴趣的文章
用 node.js 开启一个 http服务,返回文件或信息
查看>>
【git】warning: adding embedded git repository
查看>>
git warning: LF will be replaced by CRLF in 解决办法
查看>>
python文件处理
查看>>
CentOS7制作本地yum源
查看>>
参考花书《深度学习》实现一个简易版PCA
查看>>
CSDN Markdown编辑器——文本颜色、大小、字体设计
查看>>
Looper源码分析
查看>>
MessageQueen源码分析
查看>>
Handler源码分析
查看>>
Git版本控制工具——背景介绍(一)
查看>>
Thread类的使用
查看>>
单元测试
查看>>
操作系统概述
查看>>
Git版本控制工具——常用命令(二)
查看>>
Android内存泄漏分析
查看>>
重学JAVA_IO流——File类
查看>>
重学JAVA_字符集与编码
查看>>
重构方法_重新组织函数
查看>>
结构化思维
查看>>