【发布时间】:2018-10-18 21:07:08
【问题描述】:
我的笔记本电脑是运行 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) 字符,则编辑窗口将显示该点之前的所有文本。
如何纠正或规避这些限制?
旁白:
我有一个子例程可以清洗文本字符串以消除这些问题特征(例如,将 0x92 的实例替换为 0x27),但找不到将其合并到我的应用程序中的方法。 WM_CHAR 消息从未发出,VS 2015 Express 显然无法编译任何在线建议的方法来从剪贴板中检索文本。
如果我在外部清洗文本并且一次只粘贴一个段落,那么一切正常。
【问题讨论】:
标签: visual-studio-2015 controls edit