单行编辑控件的限制? GDI相关?

我正在使用对话框中的编辑控件 – 所有的MFC。 资源中指定的唯一样式是ES_AUTOHSCROLL。 对话框出现并正确显示。 编辑控件也可以正常工作和编辑文本 – 直到一个点。 此时,它完全停止显示文本。 编辑控件只是空白。

我的第一个想法是试图通过发送调用SetLimitText()编辑控件,只是发送EM_SETLIMITTEXT调整编辑控件的限制。 我设置了一个比前一个限制值大10倍的大数字,并通过EM_GETLIMITTEXT确认检索的数字等于所设置的数字。 之后,我仍然有这个问题,没有什么改变。

接下来我尝试捕获EN_MAXTEXT和EN_ERRSPACE。 这两个通知都没有发送。

最后,我开始尝试一些不同的input,如果我input了一个空格或一个句点,那么我可以比显示一个W来显示更多的字符。对话框中的字体是我的系统映射到的MS Shell Dlg微软Sans Serif。 这是一个比例字体,不同的字符有不同的宽度,所以我开始的事情,也许是GDI相关。

接下来,我捕获了EN_CHANGE,当它被触发时,我去创build一个显示IC,从编辑控件中select字体到IC中,然后在编辑控件的文本上调用GetTextExtent()。 显示在32760附近的问题是在16位有符号整数限制附近。

所以,我认为我的问题是GDI相关的,编辑控件不能超过这个限制。 我尝试用一​​个RICHEDIT2控件代替,但在空白之前显示的字符较less。

另一个奇怪的是,如果我继续input字符,并在编辑控件上调用GetWindowText(),所有的字符将被返回。 只是编辑控件是空白的。

是的,也许我不应该展示那么多的angular色,但它是这样的。

有没有人有更好的解释,解决scheme或解决方法?

Solutions Collecting From Web of "单行编辑控件的限制? GDI相关?"