Find nen Fehler net
-
es kann an der Funktion WndProc liegen die du uns nicht zeigst
-
@hinweis: wusste net das die so wichtig ist

@phonix: das is ja wohl der titel meines fenster, wo is das das problem dabei?
naja, hier ma der ganze code. ich fürchte ich hab noch net so ganz verstanden wie ich dasd mti nem childwindow machen, weil vorher ging alles ;=)
So, hier dann ma der ganze code(eingie funktionen sind in andenr skripten definiernt, aber die funzten voher auch):
#include <windows.h> #include <stdio.h> #include <dsound.h> #include <dinput.h> #include "Input.h" #include "Sound.h" #define WM_DRUMSET WM_USER + 1 enum{ DE_BASS, DE_SNARE, DE_TOM1, DE_TOM2, DE_TOM3, DE_RIDE, DE_CRASH, DE_HIHAT_F, DE_HIHAT_H }; enum{ MAPVK_VK_TO_VSC, MAPVK_VSC_TO_VK, MAPVK_VK_TO_CHAR, MAPVK_VSC_TO_VK_EX, MAPVK_VK_TO_VSC_EX }; #define SCAN(x) MapVirtualKey(x, MAPVK_VK_TO_VSC) #define VK(x) MapVirtualKey(x, MAPVK_VSC_TO_VK) LPDIRECTSOUNDBUFFER8 Bass, Snare, Tom1, Tom2, Tom3, Ride, Crash, HiHat_c, HiHat_o, HiHat_f; HWND hWnd; HWND hWndO; char KeyNames[9]; bool HiHat = false; HRESULT LoadSettings(LPSTR lpConfig){ return DRUM_OK; } DWORD InputThread(LPVOID lpParameter) { int i; KeyNames[DE_BASS] = SCAN('B'); KeyNames[DE_SNARE] = SCAN('S'); KeyNames[DE_TOM1] = SCAN('E'); KeyNames[DE_TOM2] = SCAN('R'); KeyNames[DE_TOM3] = SCAN('T'); KeyNames[DE_RIDE] = SCAN('I'); KeyNames[DE_CRASH] = SCAN('U'); KeyNames[DE_HIHAT_F] = SCAN('A'); KeyNames[DE_HIHAT_H] = SCAN('Y'); BYTE bKeyState[256]; bool KeyStateOld[9]; ZeroMemory((LPVOID)&bKeyState, sizeof(bKeyState)); while(true) { ZeroMemory((LPVOID)&bKeyState, sizeof(bKeyState)); ReadData(bKeyState); if(bKeyState[KeyNames[DE_BASS]] && !KeyStateOld[DE_BASS]) { SendMessage(hWnd, WM_DRUMSET, DE_BASS, 1); KeyStateOld[DE_BASS] = TRUE; } else if(!bKeyState[KeyNames[DE_BASS]] && KeyStateOld[DE_BASS]){ SendMessage(hWnd, WM_DRUMSET, DE_BASS, 0); KeyStateOld[DE_BASS] = false; } if(bKeyState[KeyNames[DE_SNARE]] && !KeyStateOld[DE_SNARE]) { SendMessage(hWnd, WM_DRUMSET, DE_SNARE, 1); KeyStateOld[DE_SNARE] = TRUE; } else if(!bKeyState[KeyNames[DE_SNARE]] && KeyStateOld[DE_SNARE]){ SendMessage(hWnd, WM_DRUMSET, DE_SNARE, 0); KeyStateOld[DE_SNARE] = false; } if(bKeyState[KeyNames[DE_TOM1]] && !KeyStateOld[DE_TOM1]) { SendMessage(hWnd, WM_DRUMSET, DE_TOM1, 1); KeyStateOld[DE_TOM1] = TRUE; } else if(!bKeyState[KeyNames[DE_TOM1]] && KeyStateOld[DE_TOM1]){ SendMessage(hWnd, WM_DRUMSET, DE_TOM1, 0); KeyStateOld[DE_TOM1] = false; } if(bKeyState[KeyNames[DE_TOM2]] && !KeyStateOld[DE_TOM2]) { SendMessage(hWnd, WM_DRUMSET, DE_TOM2, 1); KeyStateOld[DE_TOM2] = TRUE; } else if(!bKeyState[KeyNames[DE_TOM2]] && KeyStateOld[DE_TOM2]){ SendMessage(hWnd, WM_DRUMSET, DE_TOM2, 0); KeyStateOld[DE_TOM2] = false; } if(bKeyState[KeyNames[DE_TOM3]] && !KeyStateOld[DE_TOM3]) { SendMessage(hWnd, WM_DRUMSET, DE_TOM3, 1); KeyStateOld[DE_TOM3] = TRUE; } else if(!bKeyState[KeyNames[DE_TOM3]] && KeyStateOld[DE_TOM3]){ SendMessage(hWnd, WM_DRUMSET, DE_TOM3, 0); KeyStateOld[DE_TOM3] = false; } if(bKeyState[KeyNames[DE_RIDE]] && !KeyStateOld[DE_RIDE]) { SendMessage(hWnd, WM_DRUMSET, DE_RIDE, 1); KeyStateOld[DE_RIDE] = TRUE; } else if(!bKeyState[KeyNames[DE_RIDE]] && KeyStateOld[DE_RIDE]){ SendMessage(hWnd, WM_DRUMSET, DE_RIDE, 0); KeyStateOld[DE_RIDE] = false; } if(bKeyState[KeyNames[DE_CRASH]] && !KeyStateOld[DE_CRASH]) { SendMessage(hWnd, WM_DRUMSET, DE_CRASH, 1); KeyStateOld[DE_CRASH] = TRUE; } else if(!bKeyState[KeyNames[DE_CRASH]] && KeyStateOld[DE_CRASH]){ SendMessage(hWnd, WM_DRUMSET, DE_CRASH, 0); KeyStateOld[DE_CRASH] = false; } if(bKeyState[KeyNames[DE_HIHAT_F]] && !KeyStateOld[DE_HIHAT_F]) { SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_F, 1); KeyStateOld[DE_HIHAT_F] = TRUE; } else if(!bKeyState[KeyNames[DE_HIHAT_F]] && KeyStateOld[DE_HIHAT_F]){ SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_F, 0); KeyStateOld[DE_HIHAT_F] = false; } if(bKeyState[KeyNames[DE_HIHAT_H]] && !KeyStateOld[DE_HIHAT_H]) { SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_H, 1); KeyStateOld[DE_HIHAT_H] = TRUE; } else if(!bKeyState[KeyNames[DE_HIHAT_H]] && KeyStateOld[DE_HIHAT_H]){ SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_H, 0); KeyStateOld[DE_HIHAT_H] = false; } } return 0; } LRESULT CALLBACK WndProcO(HWND hWndO, UINT option_message, WPARAM wParam, LPARAM lParam){ static HWND heditBass; switch(option_message) { case WM_CREATE:{ heditBass = CreateWindow( "edit", "B", WS_CHILD | WS_VISIBLE, 20, 20, 50, 50, hWndO, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); return 0; } break; case WM_SIZE:{ MoveWindow(heditBass, LOWORD(lParam) / 2 - 80, HIWORD(lParam) - 30, 160, 22, TRUE); return 0; } break; } } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){ static HWND hButtonO; switch(msg){ case WM_CREATE:{ hButtonO = CreateWindow( "button", "Optionen", WS_CHILD | WS_VISIBLE, 20, 20, 50, 50, hWnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); return 0; } break; case WM_SIZE:{ MoveWindow(hButtonO, LOWORD(lParam) / 2 - 80, HIWORD(lParam) - 30, 160, 22, TRUE); return 0; } break; case WM_DESTROY:{ PostQuitMessage(0); return 0; } break; case WM_DRUMSET:{ switch(wParam){ case DE_BASS:{ if((bool)lParam){ Bass->SetCurrentPosition(0); Bass->Play(0, 0, 0); } } break; case DE_SNARE:{ if((bool)lParam) { Snare->SetCurrentPosition(0); Snare->Play(0, 0, 0); } } break; case DE_HIHAT_F:{ if((bool)lParam){ HiHat_o->Stop(); HiHat_f->SetCurrentPosition(0); HiHat_f->Play(0, 0, 0); HiHat = true; } else HiHat = false; } break; case DE_HIHAT_H:{ if((bool)lParam){ if(HiHat){ HiHat_c->SetCurrentPosition(0); HiHat_c->Play(0, 0, 0); } else{ HiHat_o->SetCurrentPosition(0); HiHat_o->Play(0, 0, 0); } } } break; } return 0; } } return DefWindowProc(hWnd, msg, wParam, lParam); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ HRESULT hr; //Hauptfenster WNDCLASSEX window; MSG message; window.cbSize = sizeof(WNDCLASSEX); window.lpszClassName = "VirtualDrumWindow"; window.lpfnWndProc = WndProc; window.style = CS_HREDRAW | CS_VREDRAW; window.hCursor = LoadCursor(NULL, IDC_ARROW); window.hIcon = LoadIcon(NULL, IDI_APPLICATION); window.hIconSm = LoadIcon(NULL, IDI_APPLICATION); window.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); window.lpszMenuName = NULL; window.cbClsExtra = 0; window.cbWndExtra = 0; window.hInstance = hInstance; if(!RegisterClassEx(&window)){ MessageBox(NULL, "Error: !RegisterClassEx", "Error", MB_OK | MB_ICONERROR); return 0; } hWnd = CreateWindowEx(0, "VirtualDrum", "MB VirtualDrumset", WS_VISIBLE | WS_SYSMENU, 0, 0, 300, 300, NULL, NULL, hInstance, NULL); if(hWnd == NULL){ MessageBox(NULL, "Error: !CreateWindowEx", "Error", MB_OK | MB_ICONERROR); return 0; } DWORD dwThreadId; bool done = false; //Optionsfenster WNDCLASSEX option; MSG option_message; option.cbSize = sizeof(WNDCLASSEX); option.lpszClassName = "VirtualDrumWindow Optionen"; option.lpfnWndProc = WndProc; option.style = CS_HREDRAW | CS_VREDRAW; option.hCursor = LoadCursor(NULL, IDC_ARROW); option.hIcon = LoadIcon(NULL, IDI_APPLICATION); option.hIconSm = LoadIcon(NULL, IDI_APPLICATION); option.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH); option.lpszMenuName = NULL; option.cbClsExtra = 0; option.cbWndExtra = 0; option.hInstance = hInstance; hr = InitInput(hWnd, hInstance); if(FAILED(hr)) return 0; hr = InitSound(hWnd); if(FAILED(hr)){ CleanupInput(); return 0; } hr = LoadWaveToBuffer("Sounds/Bassdrum.wav", &Bass); hr = LoadWaveToBuffer("Sounds/Snare normal.wav", &Snare); hr = LoadWaveToBuffer("Sounds/12er Tom.wav", &Tom1); hr = LoadWaveToBuffer("Sounds/14er Tom.wav", &Tom2); hr = LoadWaveToBuffer("Sounds/Tom 3.wav", &Tom3); hr = LoadWaveToBuffer("Sounds/19er aaxplosion Crash.wav", &Crash); hr = LoadWaveToBuffer("Sounds/19er Zultan Rockbeat Ride.wav", &Ride); hr = LoadWaveToBuffer("Sounds/Hihat Stick geschlossen.wav", &HiHat_c); hr = LoadWaveToBuffer("Sounds/Hihat offen.wav", &HiHat_o); hr = LoadWaveToBuffer("Sounds/Hihat getretten hart.wav", &HiHat_f); CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&InputThread, 0, 0, &dwThreadId); while(!done){ if(PeekMessage(&message, NULL, 0, 0, PM_REMOVE)){ TranslateMessage(&message); DispatchMessage(&message); if(message.message == WM_QUIT) done = true; } } CleanupSound(); CleanupInput(); return 0; }Mmn hab ich das noch net so ganz gecheckt wie ich das mit dem zweiten fenster mache.
MfG
Eldarion
-
Du hast beim ClassName in der WNDCLASSEX VirtualDrumWindow geschrieben und bei CreateWindow VirtualDrum.
Dein zweiter Parameter bei CreateWindow ist nämlich nicht dein Fenstertitel, das ist dein dritter, sondern die zu verwendende Klasse.Have fun!
-
hey leuts, ihr seit die größten
, wieder was gelernt 
-
sry das ich euhc nohcma was fragen muss, ich erzeuge mämlich jetz mit dem button mein 2tes fenster, bloß dann stürzt mein prog immer ab und windows wil nen fehlerbericht senden

Hier nochma der code, ich hab die callbacks jetz nach unten, weil die ja auf die klassen zugreifen müssen.
#include <windows.h> #include <stdio.h> #include <dsound.h> #include <dinput.h> #include "Input.h" #include "Sound.h" #define WM_DRUMSET WM_USER + 1 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK WndProcO(HWND, UINT, WPARAM, LPARAM); enum{ DE_BASS, DE_SNARE, DE_TOM1, DE_TOM2, DE_TOM3, DE_RIDE, DE_CRASH, DE_HIHAT_F, DE_HIHAT_H }; enum{ MAPVK_VK_TO_VSC, MAPVK_VSC_TO_VK, MAPVK_VK_TO_CHAR, MAPVK_VSC_TO_VK_EX, MAPVK_VK_TO_VSC_EX }; #define SCAN(x) MapVirtualKey(x, MAPVK_VK_TO_VSC) #define VK(x) MapVirtualKey(x, MAPVK_VSC_TO_VK) LPDIRECTSOUNDBUFFER8 Bass, Snare, Tom1, Tom2, Tom3, Ride, Crash, HiHat_c, HiHat_o, HiHat_f; HWND hWnd; HWND hWndO; char KeyNames[9]; bool HiHat = false; HRESULT LoadSettings(LPSTR lpConfig){ return DRUM_OK; } DWORD InputThread(LPVOID lpParameter) { int i; KeyNames[DE_BASS] = SCAN('B'); KeyNames[DE_SNARE] = SCAN('S'); KeyNames[DE_TOM1] = SCAN('E'); KeyNames[DE_TOM2] = SCAN('R'); KeyNames[DE_TOM3] = SCAN('T'); KeyNames[DE_RIDE] = SCAN('I'); KeyNames[DE_CRASH] = SCAN('U'); KeyNames[DE_HIHAT_F] = SCAN('A'); KeyNames[DE_HIHAT_H] = SCAN('Y'); BYTE bKeyState[256]; bool KeyStateOld[9]; ZeroMemory((LPVOID)&bKeyState, sizeof(bKeyState)); while(true) { ZeroMemory((LPVOID)&bKeyState, sizeof(bKeyState)); ReadData(bKeyState); if(bKeyState[KeyNames[DE_BASS]] && !KeyStateOld[DE_BASS]) { SendMessage(hWnd, WM_DRUMSET, DE_BASS, 1); KeyStateOld[DE_BASS] = TRUE; } else if(!bKeyState[KeyNames[DE_BASS]] && KeyStateOld[DE_BASS]){ SendMessage(hWnd, WM_DRUMSET, DE_BASS, 0); KeyStateOld[DE_BASS] = false; } if(bKeyState[KeyNames[DE_SNARE]] && !KeyStateOld[DE_SNARE]) { SendMessage(hWnd, WM_DRUMSET, DE_SNARE, 1); KeyStateOld[DE_SNARE] = TRUE; } else if(!bKeyState[KeyNames[DE_SNARE]] && KeyStateOld[DE_SNARE]){ SendMessage(hWnd, WM_DRUMSET, DE_SNARE, 0); KeyStateOld[DE_SNARE] = false; } if(bKeyState[KeyNames[DE_TOM1]] && !KeyStateOld[DE_TOM1]) { SendMessage(hWnd, WM_DRUMSET, DE_TOM1, 1); KeyStateOld[DE_TOM1] = TRUE; } else if(!bKeyState[KeyNames[DE_TOM1]] && KeyStateOld[DE_TOM1]){ SendMessage(hWnd, WM_DRUMSET, DE_TOM1, 0); KeyStateOld[DE_TOM1] = false; } if(bKeyState[KeyNames[DE_TOM2]] && !KeyStateOld[DE_TOM2]) { SendMessage(hWnd, WM_DRUMSET, DE_TOM2, 1); KeyStateOld[DE_TOM2] = TRUE; } else if(!bKeyState[KeyNames[DE_TOM2]] && KeyStateOld[DE_TOM2]){ SendMessage(hWnd, WM_DRUMSET, DE_TOM2, 0); KeyStateOld[DE_TOM2] = false; } if(bKeyState[KeyNames[DE_TOM3]] && !KeyStateOld[DE_TOM3]) { SendMessage(hWnd, WM_DRUMSET, DE_TOM3, 1); KeyStateOld[DE_TOM3] = TRUE; } else if(!bKeyState[KeyNames[DE_TOM3]] && KeyStateOld[DE_TOM3]){ SendMessage(hWnd, WM_DRUMSET, DE_TOM3, 0); KeyStateOld[DE_TOM3] = false; } if(bKeyState[KeyNames[DE_RIDE]] && !KeyStateOld[DE_RIDE]) { SendMessage(hWnd, WM_DRUMSET, DE_RIDE, 1); KeyStateOld[DE_RIDE] = TRUE; } else if(!bKeyState[KeyNames[DE_RIDE]] && KeyStateOld[DE_RIDE]){ SendMessage(hWnd, WM_DRUMSET, DE_RIDE, 0); KeyStateOld[DE_RIDE] = false; } if(bKeyState[KeyNames[DE_CRASH]] && !KeyStateOld[DE_CRASH]) { SendMessage(hWnd, WM_DRUMSET, DE_CRASH, 1); KeyStateOld[DE_CRASH] = TRUE; } else if(!bKeyState[KeyNames[DE_CRASH]] && KeyStateOld[DE_CRASH]){ SendMessage(hWnd, WM_DRUMSET, DE_CRASH, 0); KeyStateOld[DE_CRASH] = false; } if(bKeyState[KeyNames[DE_HIHAT_F]] && !KeyStateOld[DE_HIHAT_F]) { SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_F, 1); KeyStateOld[DE_HIHAT_F] = TRUE; } else if(!bKeyState[KeyNames[DE_HIHAT_F]] && KeyStateOld[DE_HIHAT_F]){ SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_F, 0); KeyStateOld[DE_HIHAT_F] = false; } if(bKeyState[KeyNames[DE_HIHAT_H]] && !KeyStateOld[DE_HIHAT_H]) { SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_H, 1); KeyStateOld[DE_HIHAT_H] = TRUE; } else if(!bKeyState[KeyNames[DE_HIHAT_H]] && KeyStateOld[DE_HIHAT_H]){ SendMessage(hWnd, WM_DRUMSET, DE_HIHAT_H, 0); KeyStateOld[DE_HIHAT_H] = false; } } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ HRESULT hr; //Hauptfenster WNDCLASSEX window; MSG message; window.cbSize = sizeof(WNDCLASSEX); window.lpszClassName = "VirtualDrumWindow"; window.lpfnWndProc = WndProc; window.style = CS_HREDRAW | CS_VREDRAW; window.hCursor = LoadCursor(NULL, IDC_ARROW); window.hIcon = LoadIcon(NULL, IDI_APPLICATION); window.hIconSm = LoadIcon(NULL, IDI_APPLICATION); window.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); window.lpszMenuName = NULL; window.cbClsExtra = 0; window.cbWndExtra = 0; window.hInstance = hInstance; if(!RegisterClassEx(&window)){ MessageBox(NULL, "Error: !RegisterClassEx", "Error", MB_OK | MB_ICONERROR); return 0; } hWnd = CreateWindowEx(0, "VirtualDrumWindow", "MB VirtualDrumset", WS_VISIBLE | WS_SYSMENU, 0, 0, 300, 300, NULL, NULL, hInstance, NULL); if(hWnd == NULL){ MessageBox(NULL, "Error: !CreateWindowEx", "Error", MB_OK | MB_ICONERROR); return 0; } DWORD dwThreadId; bool done = false; //Optionsfenster WNDCLASSEX option; MSG option_message; option.cbSize = sizeof(WNDCLASSEX); option.lpszClassName = "VirtualDrumWindow Optionen"; option.lpfnWndProc = WndProcO; option.style = CS_HREDRAW | CS_VREDRAW; option.hCursor = LoadCursor(NULL, IDC_ARROW); option.hIcon = LoadIcon(NULL, IDI_APPLICATION); option.hIconSm = LoadIcon(NULL, IDI_APPLICATION); option.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH); option.lpszMenuName = NULL; option.cbClsExtra = 0; option.cbWndExtra = 0; option.hInstance = hInstance; hr = InitInput(hWnd, hInstance); if(FAILED(hr)) return 0; hr = InitSound(hWnd); if(FAILED(hr)){ CleanupInput(); return 0; } hr = LoadWaveToBuffer("Sounds/Bassdrum.wav", &Bass); hr = LoadWaveToBuffer("Sounds/Snare normal.wav", &Snare); hr = LoadWaveToBuffer("Sounds/12er Tom.wav", &Tom1); hr = LoadWaveToBuffer("Sounds/14er Tom.wav", &Tom2); hr = LoadWaveToBuffer("Sounds/Tom 3.wav", &Tom3); hr = LoadWaveToBuffer("Sounds/19er aaxplosion Crash.wav", &Crash); hr = LoadWaveToBuffer("Sounds/19er Zultan Rockbeat Ride.wav", &Ride); hr = LoadWaveToBuffer("Sounds/Hihat Stick geschlossen.wav", &HiHat_c); hr = LoadWaveToBuffer("Sounds/Hihat offen.wav", &HiHat_o); hr = LoadWaveToBuffer("Sounds/Hihat getretten hart.wav", &HiHat_f); CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&InputThread, 0, 0, &dwThreadId); while(!done){ if(PeekMessage(&message, NULL, 0, 0, PM_REMOVE)){ TranslateMessage(&message); DispatchMessage(&message); if(message.message == WM_QUIT) done = true; } } CleanupSound(); CleanupInput(); return 0; } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){ static HWND hButton; switch(msg){ case WM_CREATE:{ hButton = CreateWindowEx(0, "button", "Optionen", WS_CHILD | WS_VISIBLE, 20, 20, 50, 50, hWnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); return 0; if(hWndO == NULL){ MessageBox(NULL, "Error: !CreateWindowEx", "Error", MB_OK | MB_ICONERROR); return 0; } } break; case WM_COMMAND: if(lParam == (LPARAM)hButton){ hWndO = CreateWindowEx(0, "VirtualDrumWindow Optionen", "MB VirtualDrumset", WS_VISIBLE | WS_SYSMENU, 0, 0, 300, 300, NULL, NULL, ((LPCREATESTRUCT) lParam)->hInstance, NULL); } if(hWnd == NULL){ MessageBox(NULL, "Error: !CreateWindowEx", "Error", MB_OK | MB_ICONERROR); return 0; } case WM_SIZE:{ MoveWindow(hButton, LOWORD(lParam) / 2 - 80, HIWORD(lParam) - 30, 160, 22, TRUE); return 0; } break; case WM_DESTROY:{ PostQuitMessage(0); return 0; } break; case WM_DRUMSET:{ switch(wParam){ case DE_BASS:{ if((bool)lParam){ Bass->SetCurrentPosition(0); Bass->Play(0, 0, 0); } } break; case DE_SNARE:{ if((bool)lParam) { Snare->SetCurrentPosition(0); Snare->Play(0, 0, 0); } } break; case DE_HIHAT_F:{ if((bool)lParam){ HiHat_o->Stop(); HiHat_f->SetCurrentPosition(0); HiHat_f->Play(0, 0, 0); HiHat = true; } else HiHat = false; } break; case DE_HIHAT_H:{ if((bool)lParam){ if(HiHat){ HiHat_c->SetCurrentPosition(0); HiHat_c->Play(0, 0, 0); } else{ HiHat_o->SetCurrentPosition(0); HiHat_o->Play(0, 0, 0); } } } break; } return 0; } } return DefWindowProc(hWnd, msg, wParam, lParam); } LRESULT CALLBACK WndProcO(HWND hWndO, UINT option_message, WPARAM wParam, LPARAM lParam){ static HWND heditBass; switch(option_message) { case WM_CREATE:{ heditBass = CreateWindow( "edit", "B", WS_CHILD | WS_VISIBLE, 20, 20, 50, 50, hWndO, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); return 0; } break; case WM_SIZE:{ MoveWindow(heditBass, LOWORD(lParam) / 2 - 80, HIWORD(lParam) - 30, 160, 22, TRUE); return 0; } break; case WM_DESTROY:{ PostQuitMessage(0); return 0; } break; } return DefWindowProc(hWndO, option_message, wParam, lParam); }Könntet ihr mir nochma den fehler sagen?
Eldarion
-
sry für den doppelpost, aber aufnen edit reagiert keiner. ich bin mir mittlerweile fast sicher, das das problem hierdrin liegt:
hWndO = CreateWindowEx(0, "VirtualDrumWindow Optionen", "MB VirtualDrumset", WS_VISIBLE | WS_SYSMENU, 0, 0, 300, 300, NULL, NULL, ((LPCREATESTRUCT) lParam)->hInstance, NULL);und zwar genau hier:
((LPCREATESTRUCT) lParam)->hInstance,was muss da hin=?

Mfg
Eldarino
-
GetModuleHandle(NULL);da das CREATESTRUCT im lParam NUR unter WM_CREATE verfügbar ist. Siehe auch in der MSDN zu WM_CREATE und WM_COMMAND.
-
danke

-
Eldarion schrieb:
danke

Jo kein Problem
.
-
Eldarion schrieb:
Find nen Fehler net
wieso ich?

-
weil ich dich ja nich sehe
