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

时间:2015-03-13 20:18:39

标签: c++ winapi multiline

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

1 个答案:

答案 0 :(得分:3)

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

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