如何处理 Win32 多行编辑控件中的输入键

How to handle Enter key in Win32 multiline Edit control?

本文关键字:控件 编辑 输入 何处理 处理 Win32      更新时间:2023-10-16

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

可以使用阻止返回键的编辑控件的简单子类来执行此操作:

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