如何检查窗口中 Row 的长度或宽度是否大于其父窗口C++的宽度
How to check if the length or width of Row in a window is greater than the width of its parent window C++
如果行的宽度超过其父窗口的宽度,我想将复选框的现有文本包装成多行。我真的不知道该怎么做。
我要显示复选框字符串的图像
裁剪字符串的图像,仅在窗口大小或最大化时显示
恐怕你会有问题。
将复选框设置为多行的设置是ES_MULTILINE
,如果您查看此处,您将看到它指出:
若要使用CreateWindow或CreateWindowEx函数创建编辑控件,请指定 EDIT 类、相应的窗口样式常量以及以下编辑控件样式的组合。创建控件后,除非另有说明,否则无法修改这些样式。
所以,在我看来,你有三条前进的道路,这取决于你觉得什么对你来说是最好或最优雅的。
无论如何,在资源编辑器中将控件设置为多行。那么没关系,会包裹。无需更改设置。
实现所需的功能以限制窗口可以减小到的大小。如果你有兴趣,我可以告诉你如何。这样,如果正确设置了控件调整大小属性,它可以调整更大的大小,但只能减小已知维度(即:在资源编辑器中创建的维度)。
可能在同一位置有两个控件,一个为多行,一个为单行。当您决定要显示哪个时,请交换可见性。但我认为这是一个坏主意,有点头疼,不值得麻烦。
恕我直言,我会同时做想法 1 和 2,我很乐意扩展我的答案以提供更多信息。
更新
看了你的图片和关于翻译的评论,然后有第四个想法。如果您使用第三方应用程序来管理翻译并使用附属 DLL 文件,则可以按语言调整资源。由于某些窗口的冗长性质,我有时不得不使某些窗口的默认宽度变宽。
我已经为复选框设置了BS_MULTILINE。窗口的最小大小是固定的,但我只希望复选框适合它。我希望它与其他标签在同一行中至少显示一个单词,并在第二行显示剩余单词。所以我正在检查第一行的总宽度是否大于窗口的宽度,然后显示带有\r的字符串,否则显示普通字符串。但是,我想将复选框的第一行或第一个单词与复选框对齐,其余单词应位于第一个单词下方。目前,该复选框位于两行之间,看起来很奇怪。无论如何我能做到这一点吗?
- WinAPI 检查窗口是否具有常规标题栏
- Qt - 有没有办法检查窗口是否标记为始终在顶部(linux)?
- 有没有办法有条件地检查窗口是否正在使用滚动条
- WinAPI - 确定窗口是否具有最大化/还原功能
- Xlib.检查窗口是否重叠
- 检查特定应用程序的窗口是否处于最小化状态
- Win32 检测窗口是否最大化/停靠到半屏(Win键 + 左/右)
- 了解窗口是否具有菜单栏
- 创建一个没有父级的新Qt窗口是否也会创建一个新线程
- 如何检测焦点窗口是否为编辑"类型"控件?
- 确定窗口是否聚焦/活动/前景
- SDL2窗口是否可以始终处于活动状态,并在DirectX窗口上运行
- C++ - 查看 hWnd 窗口是否响应
- 如何使用他的HWND检查窗口是否有可见的滚动条
- 如何检查我当前的窗口是否是最显眼的窗口
- 检查窗口是否处于活动状态
- 如何检查opencv窗口是否已关闭
- 检查活动窗口是否使用direct3d
- 窗口是否接收三次点击事件?如何处理高阶单击
- 检查TCP窗口是否已满