编辑框控件具有接受粘贴文本的限制。

时间:2018-10-18 21:07:09

标签: visual-studio-2015 controls edit

我的笔记本电脑是运行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显然无法编译任何在线建议的方法来从剪贴板中检索文本。

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

1 个答案:

答案 0 :(得分:0)

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