如何处理 Win32 多行编辑控件中的 Enter 键?

How to handle Enter key in Win32 multiline Edit control?

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

您可以使用阻止 return 键的编辑控件的简单子 class 来执行此操作:

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);