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



我使用CEdit文本字段在MFC应用程序中输入搜索项。当在全高清分辨率下使用它时,它工作得很好,我可以根据需要输入任意大小的字符串,但当在4k分辨率下使用时,文本限制为10个字符。GetLimitText的返回值是3000,如果SetLimitText的值小于10,则有效,限制为更多(例如20(也没有任何作用,仍然只能输入10个字符。以前有人遇到过这个问题吗?或者可能是我的实现造成的?

I"固定的";在某种程度上。我打电话给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(

最新更新