【发布时间】:2017-08-05 05:24:47
【问题描述】:
我有一个复选框,它几乎位于窗口宽度的末尾(行尾),所以如果我翻译文本,它会超出窗口。
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 的长度太长以至于超出屏幕截图所示的窗口:
我想换行这个文本,这样如果复选框文本的长度太长,它会将文本换行到下一行,并根据窗口的大小进行调整。
【问题讨论】:
-
您需要使用 DT_CALCRECT 对按钮文本进行 DrawText 以查看矩形的高度并相应地调整按钮的大小。
-
您为什么不遵循 Microsoft 国际化指南?它建议您“设计菜单和对话框,为文本扩展留出空间。例如,英语字符串在翻译成德语或荷兰语时通常会扩展 40%。”您的方法最终可能会使对话框控件间距变得混乱。
-
按钮的大小随着文本的大小而增加。它是我们第一次加载窗口时的窗口大小。
标签: c++ checkbox text mfc word-wrap