【问题标题】:How to handle Enter key in Win32 multiline Edit control?如何处理 Win32 多行编辑控件中的 Enter 键?
【发布时间】:2015-03-13 20:18:38
【问题描述】:

我有一个多行编辑控件,允许从其他来源(即复制/粘贴,...)进行多行文本,但我不想让用户通过直接按 Enter 键来换行。
在这种情况下如何处理 Enter 键?谢谢!

【问题讨论】:

    标签: c++ winapi multiline


    【解决方案1】:

    您可以使用一个简单的编辑控件子类来阻止返回键:

    LRESULT CALLBACK EditSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
    {
        if (uMsg == WM_CHAR && wParam == VK_RETURN)
            return 0;
        LRESULT lRes = DefSubclassProc(hWnd, uMsg, wParam, lParam);
        if (uMsg == WM_DESTROY)
            RemoveWindowSubclass(hWnd, EditSubclassProc, 0);
        return lRes;
    }
    

    调用它:

    SetWindowSubclass(hWndEdit, EditSubclassProc, 0, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多