Help: Как убрать звук неверной операции в TTreeView???!!!!
От: VadNuNik Россия macmaniak.narod.ru
Дата: 23.01.07 17:02
Оценка:
Делаю свой модифицированный 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: Нажали на пробел");
    }
}


Ваще не пойму на какую тему гуглить :-)
Re: Help: Как убрать звук неверной операции в TTreeView???!!
От: kochmin_alexandr Россия  
Дата: 23.01.07 17:06
Оценка:
сам то я по delphi и от сишного кода у меня волосы дыбом
но по-моему ты вот тут key=0; напиши. Тогда дальше нажатие не пойдет.

[code]
V> // Пытался удушить у предка — фиг вам
V> void __fastcall TWinControl::KeyDown(Word &Key, Classes::TShiftState Shift)
V> {
V> if(VK_SPACE == Key)
V> {
V> DEBUG_PRINT("TWinControl: Нажали на пробел");
V> }
V> }
V> [/ccode]
V>
V> Ваще не пойму на какую тему гуглить


--
С уважением
Кочмин Александр
Firebird Foundation associate member #257
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Help: Как убрать звук неверной операции в TTreeView??
От: saturas  
Дата: 24.01.07 06:39
Оценка:
Здравствуйте, kochmin_alexandr, Вы писали:

_>сам то я по delphi и от сишного кода у меня волосы дыбом

_>но по-моему ты вот тут key=0; напиши. Тогда дальше нажатие не пойдет.

не поможет это. если вызвать прямо в OnKeyDown Application.ProcessMessages, то бип все равно услышим. Ставил бряк на функцию MessageBeep в дельфе, однако резалта тоже не получал, из чего сделал вывод, что такую гадость делает винда.
Re[3]: Help: Как убрать звук неверной операции в TTreeView??
От: VadNuNik Россия macmaniak.narod.ru
Дата: 24.01.07 19:51
Оценка:
Здравствуйте, saturas, Вы писали:

S>не поможет это.

Угу. Вот правильное решение. Сам нашел :)

virtual void __fastcall DefaultHandler(void *Message);


В этом обработчике ловим все, что нужно и разруливаем. "Бип"вылазил по сообщению WM_CHAR.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.