edit响应键盘的“咚咚”声音去掉

在按键处理的代码里填上 e.Handled = true; 就没声音了

 private void textBoxCodebar_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == Convert.ToChar(Keys.Enter))
            {
   
                button2_Click(sender, e);
                e.Handled = true;
            }
        }

来源: https://blog.csdn.net/shibing5238/article/details/7619505


如何才能使在Edit组件中按按下"Ctrl+A"时,不要发出'叮'的一声? 

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
var
  vWinControl: TWinControl;
begin
  vWinControl := FindControl(Msg.hwnd);
  if not (vWinControl is TEdit) then Exit;
  case Msg.message of
    WM_KEYDOWN, WM_KEYUP:
    begin
      if ssCtrl in KeyDataToShiftState(Msg.lParam) then
        case Msg.wParam of
          Ord('A'): Handled := True;
        end;

      case Msg.wParam of
        VK_RETURN, VK_ESCAPE: Handled := True;
      end;
      if Handled then
        vWinControl.Perform(Msg.message, Msg.wParam, Msg.lParam);
    end;
  end;
end;

来源:https://bbs.csdn.net/topics/70056087


 在不响应按键输入的窗口,每次按下时,都会发出“咚咚咚”的声音,如何去掉?

咚咚咚声本来是windows用来提醒用户,输入无效的。
既然你不想要,可以在PreTranslateMessage里返回TRUE,拿我一个控件为例,如果不做处理,按什么键都会发出咚咚咚声。但我的控件支持数字键:

BOOL CXXXXCtrl::PreTranslateMessage(MSG* pMsg) 
{
if (WM_KEYDOWN != pMsg->message)
return COleControl::PreTranslateMessage(pMsg);

if (0x31 <= pMsg->wParam && pMsg->wParam <= 0x39) //数字键
{
SelectLegendFromIndex(pMsg->wParam - 0x31);
return TRUE;
}
return COleControl::PreTranslateMessage(pMsg);
}

来源:https://bbs.csdn.net/topics/110182044

猜你喜欢

转载自www.cnblogs.com/railgunman/p/12313131.html