MFC CEdit输入在4k分辨率下将文本限制为10个字符

问题描述

我使用CEdit文本字段在MFC应用程序中输入搜索词。当以FullHD分辨率使用它时,它可以正常工作,我可以根据需要输入尽可能长的字符串,但是以4k分辨率使用时,文本限制为10个字符。 GetLimitText的返回值为3000,如果我SetLimitText的值小于10,则它可以工作,限制为更多(例如20)不起作用,则只能输入10个字符。有人遇到过这个问题吗?或者可能是我的实现造成的?

解决方法

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

,

动态地为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,this,IDC_FIND_TEXT)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...