我的笔记本电脑是运行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)如果文本包含'\ n'字符或太长(即> 800字节),则编辑窗口将短暂闪烁粘贴的文本,然后恢复为空。
(2)如果其他可粘贴文本包含撇号(0x92)字符,则编辑窗口将显示该点之前的所有文本。
如何纠正或规避这些限制?
ASIDE:
我有一个子例程可以清洗文本字符串以摆脱这些问题的特征(例如,将0x92的实例替换为0x27),但是找不到将其合并到我的应用程序中的方法。 WM_CHAR消息永远不会发出,并且VS 2015 Express显然无法编译任何在线建议的方法来从剪贴板中检索文本。
如果我从外部清洗文本并且一次只粘贴一个段落,那么一切正常。
答案 0 :(得分:0)
不确定这是否是我自己的问题的肯定答案,但是我注意到WS_VSCROLL的添加解决了我所遇到的所有限制。
暂时保持双手交叉。