Делаю свой модифицированный TreeView. Требуется выполнения некой операции по нажатию на пробел. Перехватывал событие по разному — во всех случаях, перед перехватом обязательно раздается "Бамп!" — звук неверной операции. Как его удушить? Подозреваю, что при отсутствии звуковухи будет пищать спикер, что вовсе неприемлемо!
Вот куски кода:
Файл CheckTreeView.h
class PACKAGE TCheckTreeView : public TTreeView
{
public:
__fastcall TCheckTreeView(TComponent* Owner);
protected:
//DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift); // Пробовал и так - результат аналогичен
void __fastcall WMKeyDown(TWMKey Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_KEYDOWN, TWMKey, WMKeyDown)
END_MESSAGE_MAP(TPersistent) // Добрался до TPersistent-а начиная с TTreeView, все так же.
...
Файл CheckTreeView.cpp
void __fastcall TCheckTreeView::WMKeyDown(TWMKey Message)
{
DEBUG_PRINT("Перехватили событие нажатия на клавишу"); // Трям есть. DEBUG_PRINT - макрос пишущий сообщения в Event Log
}
// Пытался удушить у предка - фиг вам
void __fastcall TWinControl::KeyDown(Word &Key, Classes::TShiftState Shift)
{
if(VK_SPACE == Key)
{
DEBUG_PRINT("TWinControl: Нажали на пробел");
}
}
Ваще не пойму на какую тему гуглить :-)