-1

我使用CEdit文本字段在 MFC 应用程序中输入搜索词。在全高清分辨率下使用它时效果很好,我可以根据需要输入尽可能长的字符串,但在使用 4k 分辨率时,文本限制为 10 个字符。的返回GetLimitText是 3000,如果我SetLimitText的值小于 10 就可以了,限制到更多(比如 20)没有任何作用,仍然只能输入 10 个字符。以前有没有人遇到过这个问题,或者可能来自我的实施?

4

2 回答 2

0

在为 CDialogBar 动态创建等效资源时(而不是使用资源编辑器),我遇到了类似的问题。其中一个控件是 CEdit 控件,正如 user3808318 所指出的,MFC 或 Windows 神秘地忽略了您使用 SetLimitText 分配的任何值,并且似乎忽略了您键入的任何超出屏幕上编辑控件的字符。

这是我创建导致此问题的编辑控件的原始方式。

创建 (WS_CHILD | WS_VISIBLE | WS_BORDER, rectDummy, this, IDC_FIND_TEXT)

这是正确的方法,现在包括 ES_AUTOHSCROLL 选项。

创建(WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL,rectDummy,这个,IDC_FIND_TEXT)

于 2020-09-09T21:03:16.243 回答
0

我以某种方式“修复”了它。我在打电话CWnd::ModifyStyleEx(0, WS_EX_CLIENTEDGE)。我替换为CWnd::ModifyStyle(0, WS_BORDER). 这不是一个真正的修复,因为它改变了它的外观,但我想这是一个错误。

于 2020-08-27T10:35:03.100 回答