008
05.07.2005, 11:09 Uhr
kox
|
Ich will mal noch die entsprechenden Quelltexthäppchen schreiben:
Hier leite ich die Klasse ab:
C++: |
class MyCWnd : public CWnd { public:
MyCWnd(); virtual ~MyCWnd();
afx_msg void OnKeyUp (UINT nChar, UINT nRepCnt,UINT nFlags); };
|
Das ist das überladen der OnKeyUp-Funktion:
C++: |
void MyCWnd::OnKeyUp (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; } } }
|
und hier starte ich meinen Listener-Thread:
C++: |
MyCWnd* pWnd = new MyCWnd;
pWnd->Attach(hwnd);
mythread = AfxBeginThread( KeyListener, pWnd, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
|
der bisher nur so aussieht:
C++: |
static UINT KeyListener(LPVOID Pparam) { MyCWnd *cwnd = (MyCWnd*) Pparam; while (cwnd) { Sleep(0); } return 0; }
|
Ist das so ok? Was fehlt noch, damit er auch listened? Bisher macht er das nämlich nicht, jedenfalls ändert sich die Lautstärke nicht beim Drücken der Tasten...
Kox |