Як прибрати звук від натискання Alt - буква
На формі є MainMenu, для деяких пунктів у ньому задані через підкреслення hotkeys, наприклад, "&Fille" (hotkey буде Alt+F). Проблема в тому, що при натисканні на Alt+літера, якщо такого хоткея немає (наприклад, Alt+W), Windows видає звук, MessageBeep. Як позбутися цього звуку? Анноїт.
Подивився у вихідниках VCL, де це можливо, нічого не знайшов.
> Подивився у вихідниках VCL, де це можливо, нічого не знайшов.
Так, це треба дивитися у вихідних windows.
> Так, це треба дивитися у вихідних windows.Ні, це явно десь у VCL, в деяких програмах написаних на Delphi, цього звуку немає.
> Ні, це явно десь у VCL, у деяких програмах написаних > на Delphi, цього звуку немає.
Дельфі тут ні до чого. Звук виходить при обробці WM_MENUCHAR, коли в high-order word of the return value повертається 0.
> Дельфі тут ні до чого. Звук виходить під час обробки > WM_MENUCHAR, коли в high-order word of the return > value повертається 0.Майже ясно. Тепер треба зрозуміти, як цього звуку позбутися.
Проблема в чому: мені особисто не заважає сам звук, але у мене після натискання Alt+літера з'являється форма швидкого пошуку, як у NC. І зараз вона з'являється у супроводі цього звуку. :) Тобто. у мене натискання Alt+літера зарезервовано під мій шорткат - як би прибрати стандартне відпрацювання, з цим звуком?
> звуку. :) Тобто. у мене натискання Alt+літера зарезервовано > під мій шорткат - як би прибрати стандартне відпрацювання, з > цим звуком?
Мабуть, якось так (без будь-яких шорткатів): procedure TForm1.WMMenuChar(var msg: TWMMenuChar); // message WM_MENUCHAR; var s : String; begin s:=InputBox("Find", "match", msg.User); msg.Result := MakeLResult(0, 1); end;
> Мабуть, якось так (без будь-яких шорткатів): Дякую, допомогло.