编辑框控件在接受粘贴文本时存在限制



我的笔记本电脑是运行Windows 2017 Professional的64位HP Zbook17。 我使用 VS 2015 Express C++开发 Win32 应用程序。 我注意到以下代码打开了一个编辑框

hEdit[k] = CreateWindow(
WC_EDIT
, L""
, WS_CHILD | WS_OVERLAPPED | WS_VISIBLE | WS_BORDER | ES_MULTILINE | 
ES_WANTRETURN    
, posEdit[4*k+0], posEdit[4*k+1], posEdit[4*k+2], posEdit[4*k+3]
, hDlg
, (HMENU)NULL  
, hInst
, NULL
);

在处理从文本编辑器应用或 Word 粘贴的输入时存在一些限制。 这些是:

(1( 如果文本包含""字符或太长(即> 800 字节(,编辑窗口将短暂闪烁粘贴的文本,然后恢复为空。
(2(如果可粘贴的文本包含撇号(0x92(字符,则编辑窗口将显示该点之前的所有文本。

如何纠正或规避这些限制?

旁白:

我有一个子例程,它清洗文本字符串以摆脱这些问题功能(例如,用0x27替换0x92实例(,但没有找到将其合并到我的应用程序中的方法。 WM_CHAR消息从未发出,VS 2015 Express显然无法编译任何在线建议的从剪贴板检索文本的方法。

如果我在外部清洗文本并且一次只粘贴一个段落,则一切正常。

不确定这是否是我自己问题的明确答案,但我注意到添加WS_VSCROLL解决了我遇到的所有限制。
暂时保持手指交叉。

最新更新