如何处理 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);
我有一个多行编辑控件,允许从其他源(即 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);