Целая причина у Вас есть специальная Интерфейсная категория типа в дополнение к абстрактным базовым классам в C# / Java, состоит в том, потому что C#/Java не поддерживают множественное наследование.
C++ поддерживает множественное наследование, и таким образом, специальный тип не необходим. Абстрактный базовый класс без некраткого обзора (чистый виртуальный) методы функционально эквивалентен интерфейсу C#/Java.
Вы можете попробовать создать обработчик событий для события нажатия клавиши, проверить keyCode и при необходимости предотвратить его действие по умолчанию. Однако это не будет работать во всех браузерах.
Пример для Firefox (отмена короткой клавиши «Печать», проверено):
document.addEventListener("keydown", function(oEvent) {
if (oEvent.keyCode == 80 && oEvent.ctrlKey)
oEvent.preventDefault();
}, false)
Да, вы можете прослушивать различные комбинации клавиш с помощью javascript и отключить поведение по умолчанию. Есть даже библиотека, которую вы можете использовать и протестировать здесь . Я только что протестировал его с помощью google chrome и firefox в их демонстрационном текстовом поле, и он работает так, как вы хотите.
shortcut.add("Ctrl+P",function() {
return;
});
Это работает в браузерах, которые я перечислил выше, но IE не позволит вам в некоторых случаях переопределить поведение по умолчанию.
Ваш единственный вариант в IE - полностью отключить клавишу Ctrl с помощью чего-то вроде:
document.onkeydown = function () {
if (event.keyCode == 17) alert('Ctrl Key is disabled');
};
Это не идеально и, вероятно, не то, что вам нужно, но это будет работать.
Я работаю над аналогичной проблемой, событие подключения клавиатуры Приведенный ниже код отлично работает, чтобы отключить, за исключением того, что объект flash в IE не получил фокус. Поскольку я пытаюсь обработать событие клавиатуры на объекте flash, этот код у меня не работает.
function hookKeyboardEvents(e) {
// get key code
var key_code = (window.event) ? event.keyCode : e.which;
// case :if it is IE event
if (window.event)
{
if (!event.shiftKey && !event.ctrlKey) {
window.event.returnValue = null;
event.keyCode = 0;
}
}
// case: if it is firefox event
else
e.preventDefault();
}
window.document.onkeydown = hookKeyboardEvents;
Из вашего приложения после вызова метода по Ctrl + P просто сделайте код клавиши равным нулю. Я думаю, это решит вашу проблему ...
window.event.keyCode = 0;
это установит код клавиши как ноль ... Значит, когда проводник проверяет keyCode, он будет равен нулю ... поэтому функция по умолчанию не будет выполняться ...
Попробуйте это ... просто предложение