003
13.07.2005, 10:27 Uhr
kox
|
Ahaaa, danke schön, soweit so gut.
Hab das gemacht, außerdem hab ich meine Funktion umbenannt, damit sie auch bei ON_WM_KEYDOWN aufgerufen wird. Insgesamt siehts jetzt so aus:
Headerdatei:
C++: |
class MyCWnd : public CWnd { public: MyCWnd(); virtual ~MyCWnd(); protected: afx_msg void OnKeyDown (UINT nChar, UINT nRepCnt,UINT nFlags); DECLARE_MESSAGE_MAP() };
|
CPP-Datei:
C++: |
void MyCWnd::OnKeyDown (UINT nChar, UINT nRepCnt,UINT nFlags) { unsigned long *volume_pointer; unsigned long volume; unsigned long new_volume; char wavName[] = "\\windows\\Default.wav"; CString csName = CString (wavName); volume_pointer = &volume; waveOutGetVolume(HWAVEOUT WAVE_MAPPER, volume_pointer); switch (nChar){ case 38: { if (volume+0x2000 > 0xFFFF) new_volume = 0xFFFF; else new_volume = volume+0x2000; waveOutSetVolume(HWAVEOUT WAVE_MAPPER,new_volume); PlaySound(csName, NULL, SND_SYNC | SND_FILENAME); break; } case 40: { if (volume < 0x2000) new_volume = 0x0000; else new_volume = volume-0x2000; waveOutSetVolume(HWAVEOUT WAVE_MAPPER,new_volume); PlaySound(csName, NULL, SND_SYNC | SND_FILENAME); break; } } } BEGIN_MESSAGE_MAP(MyCWnd,CWnd) ON_WM_KEYDOWN() END_MESSAGE_MAP()
|
Aber et jeht immer noch nicht! Jetzt müsste doch alles hinhauen, die Message ON_WM_KEYDOWN ist registriert, ich hab die entsprechende Funktion OnKeyDown überschrieben, warum wird sie nicht aufgerufen??
Kox |