gpt4 book ai didi

C++ Win32 多行静态标签

转载 作者:太空狗 更新时间:2023-10-29 23:52:34 32 4
gpt4 key购买 nike

我遇到标签上多行的问题。

我试过使用 ES_MULTILINE,但每当我使用它时,我都会在标签位置得到一个灰色/黑色矩形,没有标签文本。

CreateWindowW(L"STATIC", selectedPatternProblem, WS_CHILD | WS_VISIBLE | SS_LEFT | ES_MULTILINE | WM_CTLCOLORSTATIC,500, 190, 380, 90,*hwnd, (HMENU) 1, NULL, NULL);

当我添加 WM_CTLCOLORSTATIC 时,矩形消失了,但我的文本也消失了。“selectedPatternProblem”太大,无法仅在一行中显示,所以我的问题是:

如何在多行上显示我的标签?

编辑 删除ES_MULTILINE 和WM_CTLCOLORSTATIC 后,我发现我的话太长了。但是现在我想知道如何在多行中显示一个长单词?

最佳答案

您将编辑控件样式 (ES_MULTILINE) 与静态控件一起使用,而静态控件并非旨在支持它。该样式可能映射到 SS_BLACKRECTSS_GRAYRECT,这将解释您观察到的行为。

您不必向当前控件添加任何样式来实现您想要的效果,因为您已经指定了 SS_LEFTdocumentation说:

SS_LEFT

A simple rectangle and left-aligns the text in the rectangle. The text is formatted before it is displayed. Words that extend past the end of a line are automatically wrapped to the beginning of the next left-aligned line. Words that are longer than the width of the control are truncated.

由于您既没有指定 SS_LEFTNOWORDWRAP 也没有指定 SS_*ELLIPSIS 样式之一,因此文本应该在单词边界之间换行。

请注意,您还使用 WM_CTLCOLORSTATIC message 作为样式,这肯定不会像您期望的那样工作。您应该从控件的样式中删除该值。

关于C++ Win32 多行静态标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15198099/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com