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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果文本超出窗口宽度MFC,如何为CButton复选框包装文本?相关的知识,希望对你有一定的参考价值。

我有一个几乎在窗口宽度的末尾(行尾)的复选框,所以如果我翻译文本它会覆盖窗口。

 CButton checkbox;
 CString str = "Cropped Value Of CheckBox";
 checkbox.create(str,WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTOCHECKBOX, CRect(0,0,0,0), this, CHECK_ID);

现在,如果str的长度太长,超出了窗口的截图:

我想要包装这个文本,这样如果复选框文本的长度太长,它将把文本包装在下一行,并根据窗口的大小进行弯曲。

答案

使用BS_MULTILINE按钮样式。

要设置该样式,请使用以下API函数:

CButton::SetButtonStyle(UINT nStyle,BOOL bRedraw = TRUE)

checkbox.SetButtonStyle(BS_MULTILINE);

文档链接:

https://msdn.microsoft.com/en-us/library/yf1wax6c.aspx#cbutton__setbuttonstyle

以上是关于如果文本超出窗口宽度MFC,如何为CButton复选框包装文本?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何为文本小部件设置字符的最大宽度?

带位图和文本的 MFC 按钮

WinApi:如何为屏幕阅读器的自绘按钮添加替代文本?

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

如何为css中的文本设置特定的像素或字符宽度限制