【发布时间】:2015-03-13 20:18:38
【问题描述】:
我有一个多行编辑控件,允许从其他来源(即复制/粘贴,...)进行多行文本,但我不想让用户通过直接按 Enter 键来换行。
在这种情况下如何处理 Enter 键?谢谢!
【问题讨论】:
我有一个多行编辑控件,允许从其他来源(即复制/粘贴,...)进行多行文本,但我不想让用户通过直接按 Enter 键来换行。
在这种情况下如何处理 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);
【讨论】: