MFC中多行cstatic文本垂直居中

2023-11-27

怎样才能制作一个CStatic文本自动换行(多行)将结果垂直居中在控件的矩形中?

我试图解决的问题是:我有一个CStatic控制旁边的CComboBox根据选择更新信息文本。该文本可以短也可以长,需要CStatic有时使用多线,有时不使用。我希望信息文本与垂直居中对齐CComboBox.

现在问题来了:

  • 如果我做CStatic只有 1 行文本高,对于 1 行文本看起来不错,但多行不适合并且不会显示。

  • 如果我做CStatic更高以适合 2 行,对于长文本(有 2 行)来说看起来不错,但是 1 行文本向上移动,因为CStatic将文本对齐到顶部。 ACStatic问题中提到的行为可以解决这个问题......

如果我不能轻松获得垂直居中CStatic多行控件,另一种方法是根据其中的文本量调整控件矩形的大小。但在这种情况下我有一个不同的问题:

如何以编程方式找出文本在一个文本中需要多少行CStatic具体宽度?


不幸的是,您无法将多行文本置于中心CStatic.

你的下一个问题有一个解决方案,但使用起来有点痛苦。你所做的就是你使用CDC::DrawTextExDT_CALCRECT标志来获取要格式化的文本的大小(以像素为单位)。通过将其除以一行文本的高度(在字体信息中给出,您可以从DC,加上一些间距,我不确定它是多少 - 大概是一个固定的量,我不认为你可以指定行距DrawText),您将得到您将获得的行数(近似值)。然后您可以调整控制矩形的大小。

想想看,您可能最好不要转换为线条,而只需将控件的大小调整到您从中获得的程度DrawTextEx :)

像这样的事情通常需要一些实验才能完全正确,并且有时在操作系统版本之间的行为有所不同。谨慎行事。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MFC中多行cstatic文本垂直居中 的相关文章

  • 具有透明背景的CWnd

    我想创建一个基于 CWnd 的类 它将引入具有透明背景的控件 只要内容是静态的 创建一个控件并用透明背景绘制其内容对我来说没什么大不了的 问题是当我想创建一个内容不断变化的控件时 这是因为我不知道如何用父背景删除控件的内容 一般情况下可能不
  • 如何最好地避免 C++/CLI 本机类型中的双重转换

    传统上 我一直使用 MFC 扩展 dll 并使用 dllimport dllexport 导入 导出 但是 当 dll 更改为使用 clr 时 此方法的成本会变得很高 因为调用可能会导致双重转换 我现在的性能受到了巨大的打击 需要停止双重重
  • 如何在改变字体大小的块元素中垂直居中文本?

    我对垂直居中文本的常用方法是使用等于容器高度的行高 因此 容器具有 height 60px line height 60px 并且子元素有 line height 60px 这样可行 但如果你增加font size高于 1em 那就搞砸了
  • AfxGetAppName() 返回垃圾字符

    我的应用程序中有以下代码行 CString strAppName AfxGetAppName 有时会充满strAppName出现了垃圾字符 我不明白为什么 有人有主意吗 TIA 如果你改变的话这是可能的m pszAppName手动 在应用程
  • 为什么 CSS Grid 的自动填充属性在列方向上不起作用

    我正在练习用行自动填充属性 但是 它并没有按照我的意愿进行 我想创建具有高度的行minmax 140px 200px 而是获取一行高度为 200px 的行 其余行为 18px 为什么会发生这种情况 body html height 100
  • 在 contenteditable 中使用 Flexbox 居中时的插入符位置

    在 OSX Chrome 45 上测试 align items center 适用于内容 但如果您单击下面的空可编辑区域 则插入符号位置不会居中 直到您开始键入 是通过顶部 底部平衡填充来解决此问题的唯一方法 还是有一种方法可以使其在不发生
  • iOS 5.0 Safari 未在文本框中垂直居中占位符

    我想将页面上的输入文本框中输入的文本垂直居中 实现此目的的典型方法是将行高和高度设置为相等 这适用于 iOS 5 0 之前的 Safari 然而 在 iOS 5 上 Safari 垂直居中显示键入的文本 但占位符文本和光标显示为顶部对齐 t
  • 如何在现有 Windows 应用程序中获得 ATL 支持

    我正在 Visual Studio 2012 中使用 Qt 5 3 1 构建一个应用程序 我还想使用一个硬件库 这需要我向项目添加一个简单的 ATL 对象 这可以通过使用 Visual Studio 向导来完成 该向导抱怨我的项目既不是 M
  • 如何调整 CWnd 内 WPF 控件的大小?

    我正在托管 WPFUserControlMFC 内部CWnd 它工作得很好 我现在需要弄清楚如何与其父控件一起调整控件的大小 我已经迷上了OnSize我正在打电话GetWindowRect并将结果设置为我的控件 如下所示 void CChi
  • JavaScript 多行字符串[重复]

    这个问题在这里已经有答案了 问题是 像在 PHP 中一样将多行字符串存储到变量中的 JavaScript 方法是什么 如果 多行字符串 是指包含换行符的字符串 则可以通过使用转义它们来编写这些字符串 n 对于换行符 var multilin
  • 如何在VC++/MFC中替换字符串中两个子字符串之间的字符串?

    假设我有一个 CString 对象 strMain AAAABBCCCCCCDDBBCCCCCCCCDDDAA 我还有两个较小的字符串 例如 strSmall1 BB strSmall2 DD 现在 我想替换 strMain 中 strSm
  • 如何在 PowerShell 中结束多行命令

    这应该很容易 但无法弄清楚 如何在 PowerShell 中结束多行命令 例如 如果我输入Get ChildItem 然后按回车键然后我得到一个 gt gt 我认为提示是继续命令 但如果我随后输入foreach Write Host nam
  • 如何使用 MFC 禁用顶级菜单项并使其变灰

    我有一个对话框应用程序 我希望在对话框顶部有可单击的菜单项 这些项目不显示下拉菜单 但实际上运行关联的命令 我通过在对话框属性中设置 Popup False 并分配消息 ID 来做到这一点 但我的问题是 当项目可点击没有意义时 无法正确禁用
  • 浮动的垂直对齐方式:左div的

    我有大约 10 个宽度相等但高度不同的 div 我希望它们尽可能紧密地组合在一起 当设置为向左浮动时 它们不会垂直彼此对齐 而是与上面 行 的底部对齐 我在下面模拟了一个小例子 想要去掉空白 你有什么建议吗 我仅限于使用这种格式 因为内容是
  • 对 MFC UI 应用程序进行单元测试吗?

    如何对大型 MFC UI 应用程序进行单元测试 我们有一些大型 MFC 应用程序已经开发了很多年 我们使用一些标准的自动化 QA 工具来运行基本脚本来检查基础知识 文件打开等 这些由 QA 小组在日常构建后运行 但我们希望引入一些程序 以便
  • 如何在 MFC 中创建带圆角的进度控件?

    我需要在 MFC 应用程序中创建一个带圆角的进度条 我尝试过使用 CreateRoundRectRgn 和 SetWindowRgn 的组合 它具有使控件完全消失的效果 我还尝试使用透明的 GIF 覆盖层 该覆盖层将绘制在进度栏的顶部 但我
  • 发送WM_SETTEXT时如何避免EN_CHANGE通知?

    我有一个 CEdit 派生控件 当基本数据为空时 该控件显示字符串 N A 我最近添加了代码 以在控件获得焦点时清空控件 SetWindowText 并在用户离开焦点时将其设置回 N A SetWindowText N A 控空 唯一的问题
  • 如何在 MFC 中调整对话框大小时移动控件?

    我已经在 MFC 中创建了对话框视图 从下图中可以清楚地看到 如滑块控件和编辑框等 当我调整对话框大小时 这些控件不会移动 在此输入图像描述 https i stack imgur com 7OxAK jpg 我想移动控件以适应对话框 但不
  • Windows API 中逻辑坐标和设备坐标之间的混淆

    我一直在研究一个使用两个函数的 Visual Studio C Windows 应用程序项目SetWindowExt and SetViewportExt 我对这两个函数的作用以及为什么它们是必要的感到困惑 搜索这些函数 我得出了逻辑坐标和
  • C++ 中的转换错误

    有人可以帮我解决这个错误吗 我是 C 新手 看来错误就发生在一堆宏中 我能做什么来解决它 或者我怎样才能追踪到它的源头 我真的不明白这个错误 这是否意味着编译器尝试转换该方法void ReadCPUparameter to a LRESUL

随机推荐

  • 如何在 Laravel 5.1 中实现“记住我”?

    如何在 Laravel 5 1 中实现记住我功能 谁能给我举个例子吗 Laravel 身份验证优惠记住账号开箱即用的功能 为了使用它 你需要做两件事 add 记住令牌用户表中的列 这是存储令牌的位置 pass true作为第二个参数验证 尝
  • Kivy 不工作(错误:无法找到任何有价值的 Window 提供程序。)

    我收到此错误 无法找到任何有价值的 Window 提供程序 kivy 继承了 完整 错误 INFO Logger Record log in C Users Victor kivy logs kivy 17 05 27 10 txt INF
  • 设备 emulator-5554 未获得授权。 (安卓)

    我遇到过类似的问题 emulator 5554 未经授权使用 adb 设备 1 基本上 我正在尝试使用 Windows 10 在 Android 虚拟设备上进行一些 flutter 编程 尽管我不认为这个问题是 flutter 特有的 启动
  • Git for Windows(64 位)中的 Maven classworlds.launcher.Launcher 错误

    我已经在 Git Bash 64 位 上使用 Maven 几个月了 突然它停止工作 并且现在在任何 Maven 命令上生成此错误 myuser mypc MINGW64 master mvn v Error Could not find o
  • SHA256 的“纯粹”方案实现(R5RS)?

    我可以在Scheme中使用SHA256 使用外部库 Java C或系统相关 或使用特定的Scheme实现 例如Chicken 但我想知道是否有一个 纯粹的 scheme实现 我今天写了一个实现 唉 R5RS 既没有字节向量也没有二进制 I
  • 为什么 WPF 中没有视觉继承?

    在 Windows 窗体中 让一个窗口继承另一个窗口有时很有用 但在WPF中 这是不允许的 为什么 WPF 窗口没有视觉继承 WPF 不支持视觉继承的原因是表单设计是通过标记 xaml 实现的 而不是使用代码隐藏来生成布局的 winform
  • xmllint DTD 验证语法

    尝试验证 XML 文档 但是 xmllint 坚持将选项作为文件读取 因此我收到 FileNotFound 异常 只是为了确认 我的 xmllint exe 与我的 XML 文件位于同一文件夹中 我在CMD中找到该目录并输入命令 xmlli
  • 在线共享和保护 Excel 文档(使用 Powerpivot),无需 Sharepoint 和 Power BI?

    我的一位客户制作了这份令人难以置信 而且非常巨大 的 Excel 文档 其中包含许多数据源 工作表 Powerpivot 表格 图表等 非常棒的工作 他希望与授权人员共享 但保护他有价值的内容 也称为数据源和文档 逻辑 例如 用户可以使用过
  • IdentityServer4 Net Core 2不调用自定义iProfileService

    我已将 Identity Server 项目升级到 Net Core 2 现在我无法调用 iProfileService 对象来添加自定义用户声明 它在 Net Core 1 中确实有效 Startup cs的ConfigureServic
  • 如何让 C 程序等待(在 Linux 上)?

    如何让 C 程序等待 在 Linux 上 我需要使用等待与 MPI 我需要 C 代码 如果要等待 MPI 请求 请使用 MPI Wait http www manpagez com man 3 MPI Wait 如果您想等待一定时间 请使用
  • gitk:奇怪的历史树

    我正在将 svn 存储库移植到 git 使用 svn2githttps www negativetwenty net redmine projects show svn2git 并且由于 svn 不跟踪合并 我需要手动编辑 git info
  • 为什么 .html() 不能与使用 jquery 的 SVG 选择器一起使用?

    Question有人可以告诉我如何将 SVG 元素转换为字符串吗 我在用着canvg将我的 SVG 转换为图像 它必须首先在画布中渲染 canvg 方法期待一个SVG STRING code function updateChartImag
  • 使用 Url 视图帮助链接时从 URL 中删除参数

    使用 Url view helper 构建链接时 如果当前页面的 url 中有参数 则 Url view helper 生成的 url 也会包含参数 例如在页面中 控制器 操作 参数 值 下面的代码 a href Dashboard a 将
  • 如何从WKInterfaceButton获取标题

    要获得标题 有函数 setTitle 但是如何将 WKInterfaceButton 的标题作为字符串获取 我没有找到任何东西https developer apple com library prerelease ios document
  • Python 2 中的类型提示

    In PEP 484 类型提示被添加到 Python 3 中 其中包括typing模块 在Python 2中有什么办法可以做到这一点吗 我能想到的就是有一个装饰器添加到方法中来检查类型 但这会在运行时失败 并且不会像提示所允许的那样更早被捕
  • AWS S3 中的“KeyError: 'Records'” - Lambda 触发器

    我有以下 lambda 函数代码 用于简单地打印 S3 存储桶的上传事件的作者和元数据 from future import print function import json import urllib import boto3 pri
  • 解析Robot Framework的输出xml

    机器人框架吐出一个输出 XML 然后用于构建 HTML 报告 带有rebot 重新运行失败等 我需要解析此文件以生成其他报告 特别是 我需要解析正则表达式的测试用例文档 获取测试用例结果 然后构建报告 这是为了与遗留系统集成 Robot F
  • 如何用新的 viewController 替换当前的 viewController

    我正在尝试用新的视图控制器替换当前的视图控制器 我之前已经能够做到这一点 但我遇到了一些 BAD ACCESS 问题 这是当我想用新视图替换当前视图时将运行的代码 该函数将使用本地属性 self some data 非原子 保留 调用 vo
  • 从 PySpark DataFrame 中的 Python 列表列表中删除元素

    我正在尝试从 Python 列表中删除一个元素 sources 62 7 32 62 18 36 62 7 31 36 62 7 32 62 我希望能够删除一个元素 rm 来自上面列表中的每个列表 我编写了一个可以对列表列表执行此操作的函数
  • MFC中多行cstatic文本垂直居中

    怎样才能制作一个CStatic文本自动换行 多行 将结果垂直居中在控件的矩形中 我试图解决的问题是 我有一个CStatic控制旁边的CComboBox根据选择更新信息文本 该文本可以短也可以长 需要CStatic有时使用多线 有时不使用 我