需要帮助了解 MFC CButton 的 SetTextMargin?

Posted

技术标签:

【中文标题】需要帮助了解 MFC CButton 的 SetTextMargin?【英文标题】:Need help understanding SetTextMargin for MFC CButton? 【发布时间】:2016-04-13 21:57:15 【问题描述】:

我需要一些指导来了解 SetTextMargin 如何为 CButton 工作。 我想要做的是有一个具有 BS_LEFT 样式的 CButton 并使用 SetIcon 在将出现在左侧的按钮上设置一个图标。现在需要为文本设置一些边距,以便它不会太靠近图标。我有一些关于保证金应该是多少的计算。 现在 CButton::SetTextMargin 接受一个 CRect 参数,我需要帮助理解我的 rect.right 和 rect.left 应该是什么。我已经尝试了各种测试,但我无法了解边距矩形是如何合并的。我对保证金和实际保证金的计算相差甚远。任何帮助,将不胜感激。谢谢!

【问题讨论】:

CMFCButton 类已经支持显示文本和图像,难道不能使用它吗? 我试过了,但我无法让按钮与不同 Windows 操作系统上的本机 UI 主题相匹配。不确定 CRect 是如何真正适合的,但我认为无论在代码中为 CRect 设置的宽度(rect.right - rect.left),在屏幕上,图像和文本之间的空间都是一半。所以我现在让它工作,但我仍然想了解 CRect 真正适合按钮的位置。 【参考方案1】:

只回答这部分问题:

现在 CButton::SetTextMargin 接受一个 CRect 参数,我需要帮助理解我的 rect.right 和 rect.left 应该是什么。

CRect 表示您希望边距有多大。设置rect.right = 0 将不会给你右边的空白。

【讨论】:

以上是关于需要帮助了解 MFC CButton 的 SetTextMargin?的主要内容,如果未能解决你的问题,请参考以下文章

MFC普通按钮CButton

MFC OnPaint CButton

MFC使用的风格(CButton, CEdit, CStatic, CWnd等等)

MFC自己派生的CButton类如何添加鼠标单击事件响应函数

在mfc中控件如CButton,CStatic创建之后能改变大小或者移动位置吗

如果文本超出窗口宽度MFC,如何为CButton复选框包装文本?