【问题标题】:Edit box control has limitations accepting pasted text.编辑框控件在接受粘贴文本方面存在限制。
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      相关资源
      最近更新 更多