Hallo,
ich komme gerade nicht so wirklich weiter und hoffe, dass ihr mir vielleicht helfen könnt.
Ich benutzt visual studio 2013 mit der Win32 API.
Im Prinzip will ich, dass man Hotkeys und einige buttons benutzen kann.
Die Buttons funktionieren, also ich klick auf den button -> er tut was er soll.
Die Hotkeys funktionieren eigentlich auch, also ich klick zb. F1 -> hotkey tut das was er soll.
Mein Problem ist allerdings, wenn ich ein Button drücke, kann ich danach keinen Hotkey mehr betätigen. Es wäre so, als würde ich dauernd den button fixiert haben. Ich muss mit der Maus seperat in die menüleiste und dort dann den gewünschten menüpunkt auswählen. Danach gehen auch wieder die Hotkeys, bis ich ein button drücke.
Hier mal das Prinzip meines callbacks:
scheinbar reicht der "break"-Befehl im button nicht aus. Oder ich muss noch irgendwas mit wParam anstellen, nur weiß ich einfach nicht weiter :/
mfg
ich komme gerade nicht so wirklich weiter und hoffe, dass ihr mir vielleicht helfen könnt.
Ich benutzt visual studio 2013 mit der Win32 API.
Im Prinzip will ich, dass man Hotkeys und einige buttons benutzen kann.
Die Buttons funktionieren, also ich klick auf den button -> er tut was er soll.
Die Hotkeys funktionieren eigentlich auch, also ich klick zb. F1 -> hotkey tut das was er soll.
Mein Problem ist allerdings, wenn ich ein Button drücke, kann ich danach keinen Hotkey mehr betätigen. Es wäre so, als würde ich dauernd den button fixiert haben. Ich muss mit der Maus seperat in die menüleiste und dort dann den gewünschten menüpunkt auswählen. Danach gehen auch wieder die Hotkeys, bis ich ein button drücke.
Hier mal das Prinzip meines callbacks:
Code:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message){
case WM_KEYDOWN:
switch(wParam){
//F1 knopf wird gedrückt
case VK_F1:
MessageBox(NULL, TEXT("F1 gedrückt"), TEXT("bla"), MB_OK);
break;
}
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
switch (wmId){
//button wird gedrückt
case IDC_button:
//erhöhe zoom
if (ZOOM < 130){
ZOOM++;
}
break;
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
scheinbar reicht der "break"-Befehl im button nicht aus. Oder ich muss noch irgendwas mit wParam anstellen, nur weiß ich einfach nicht weiter :/
mfg