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