你现在可能是在消息循环的WM_KEYDOWN消息中识别回车键并执行按下回车键对应的操作。
这会有一个问题,当你按下回车键时电脑会发出错误警告声。如果你想关闭这个警告声。请换一个方法。不要在WM_KEYDOWN消息处理这个事情。
你应该在WM_CHAR消息中处理你的事情。
case WM_CHAR:{
if(wParam == VK_RETURN){
int len = GetWindowTextLengthA(hwnd);
if(len!=0){
char Text[255];
memset(Text,0,255);
GetWindowTextA(hwnd,Text,len+1);
cout<<"接收到:"<<len<<"->"<<Text<<endl;
//此时return 0,不调用OldEditProc默认操作就不会发出声音。
return 0;
}
}
//对于其他情况,调用OldEditProc默认操作。
return CallWindowProc((WNDPROC)OldEditProc, hwnd, Message, wParam, lParam);
}
其中OldEditProc是Edit空间的默认事件,需要自己定义。
LONG_PTR OldEditProc;
//你的代码
OldEditProc = SetWindowLongPtr(H_Edit, GWLP_WNDPROC, (LONG_PTR)newEditProc);
其中H_Edit是Edit空间句柄,newEditProc是你定义的窗口循环过程