A
Hallo zusammen!
Ich schreibe eine kleine Anwendung welche, wenn sie keinen Focus hat, per Tastendruck bedient wird. Da wie, schon gesagt, auch bei fehlendem Focus Tasteneingaben abgefangen werden sollen habe ich das mit GetAsyncKeyState() gelöst.
//onIdle
void MyFrame::onIdle(wxIdleEvent& event)
{
if(GetAsyncKeyState(37)) //die '37' steht dabei für die Pfeil-Links Taste
{
//tue etwas
}
}
Die Keycodes habe ich von hier:
http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
Nun wird allerdings bei jedem Tastendruck über den PC-speaker ein Beep ausgegeben, sehr nervig...
Gelöst habe ich das erstmal mit der Holzhammermethode:
bool BleepIsOn;
//OnInit
MyFrame::MyFrame(wxWindow* parent,wxWindowID id)
{
SystemParametersInfo(SPI_GETBEEP,0, &BleepIsOn, 0);
//System-Bleep abschalten falls eingeschaltet
if(BleepIsOn){SystemParametersInfo(SPI_SETBEEP, false, 0, 0);}
}
//im Destruktor
MyFrame::~MyFrame()
{
//System-Bleep wieder einschalten falls bei Programmstart eingeschaltet
if(BleepIsOn){SystemParametersInfo(SPI_SETBEEP, true, 0, 0);}
}
Das klappt zwar erstmal, aber systemweit den Beep abzuschalten ist ja eigentlich nicht die feine englische...
Gibt es eine andere Möglichkeit den Beep bei einem Tastendruck zu unterbinden? Die Suchfunktion hat mir da leider nicht weitergeholfen.
Alberich