Функции Beep и MessageBeep
Для
ValidationError
, обычно мы используем MessageBeep
функция.Но к сожалению
MessageBeep
является асинхронным (после постановки звука в очередь функция MessageBeep возвращает управление вызывающей функции и воспроизводит звук асинхронно.).Где
Beep
функция синхронная (генерирует простые звуковые сигналы на динамике. Функция является синхронной; она выполняет предупреждающее ожидание и не возвращает управление вызывающему объекту до тех пор, пока звук не закончится.).Если вы сделаете
CEdit
проверяющий элемент управления для численных символов с MessageBeep
функция для ValidationError
, и когда пользователь все еще нажимает не те ключевые символы, поэтому звук не будет воспроизводиться.Beep
это предпочтительная функция в данной ситуации.Вопрос: что такое эквивалент
Beep
функциональные параметры (DWORD dwFreq и DWORD dwDuration) этого кода:MessageBeep(0xFFFFFFFF); // A simple beep. If the sound card is not available, the sound is generated using the speaker.
Sergey Alexandrovich Kryukov
Что плохого в асинхронном звуковом сигнале?
--СА
Mr. Tomay
когда пользователь все еще нажимает не те ключевые символы, поэтому звук не воспроизводится.
Albert Holguin
Почему бы вам просто не прослушать оба и не приблизить параметры Beep() на слух? Если вы подойдете к ним достаточно близко, я уверен, что пользователь все равно не сможет их различить. Весь смысл звукового сигнала заключается в том, чтобы просто предупредить о проблеме, так что пока он четко слышен, это должно быть важным моментом.
Mr. Tomay
На слух вы говорите: это сложно (частота звука, в герцах. Этот параметр должен находиться в диапазоне от 37 до 32 767 (от 0x25 до 0x7FFF). ).
Я уверен, что есть способ раскрыть секрет Microsoft (возможно, это отладка MessageBeep(0xFFFFFFFF);
функция), я не знаю!
Я отладил пример MFC с элементом управления edit с помощью Флаг Номера Проверен, и сделать точку останова на MessageBeep
, поэтому, когда я ввожу некоторые нечисловые ключи char, вызов MessageBeep
функция никогда не вызывается, но я слышу звуковой сигнал!!!