Servus allerseits
Hoffe das mir jemand mal einen Tipp geben kann...
Wärend ich so vor mich hinprogge bin ich in einem meiner Projekte auf die Idee gekommen, die Nachrichtenschleife eines Fensters als Endlosschleife für eine Grafikanwendung zu benutzen. Leider funktioniert dies nur bei weiterhin ankommenden Nachrichten von Maus, Tastatur etc. Mein Ziel ist es nun durch drücken einer Taste die Nachrichtenschleife weiterhin diese Taste immer wiederholt drücken zu lassen! Also ich fange die Message Pfeiltaste UP auf und starte einige meiner Routinen....anschließend soll jedoch diese Taste wieder gedrückt werden. Nach einigem versuchen habe ich eine Abfrage ob die Taste gedrückt wurde im unteren Teil der WndProc die genau das tut. Nun bin ich davon ausgegangen das er die Schleife rasendschnell ausführt und wollte dann ihrgendwie ein sleep() oder so einbauen, aber Pustekuchen....Er führt sie so einmal pro Sekunde aus....manchmal schneller manchmal langsamer, je nachdem welche Messages reinkommen. Somit läuft meine Grafikanwendung schneller wenn ich die Maus bewege als wenn ich garnichts mache. Gibts da ne Möglichkeit das anders zu machen?
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
...
case WM_KEYDOWN:
{
switch(wParam)
{
case VK_UP: ...; ArrowKeys[1]=1; ... break;
}
}
...
}//end switch
if(ArrowKeys[1]==1)
{
SendMessage(hwnd,WM_KEYDOWN,VK_UP,NULL);
}
}//end WndProc()
thx schonmal im vorraus
Hoffe das mir jemand mal einen Tipp geben kann...
Wärend ich so vor mich hinprogge bin ich in einem meiner Projekte auf die Idee gekommen, die Nachrichtenschleife eines Fensters als Endlosschleife für eine Grafikanwendung zu benutzen. Leider funktioniert dies nur bei weiterhin ankommenden Nachrichten von Maus, Tastatur etc. Mein Ziel ist es nun durch drücken einer Taste die Nachrichtenschleife weiterhin diese Taste immer wiederholt drücken zu lassen! Also ich fange die Message Pfeiltaste UP auf und starte einige meiner Routinen....anschließend soll jedoch diese Taste wieder gedrückt werden. Nach einigem versuchen habe ich eine Abfrage ob die Taste gedrückt wurde im unteren Teil der WndProc die genau das tut. Nun bin ich davon ausgegangen das er die Schleife rasendschnell ausführt und wollte dann ihrgendwie ein sleep() oder so einbauen, aber Pustekuchen....Er führt sie so einmal pro Sekunde aus....manchmal schneller manchmal langsamer, je nachdem welche Messages reinkommen. Somit läuft meine Grafikanwendung schneller wenn ich die Maus bewege als wenn ich garnichts mache. Gibts da ne Möglichkeit das anders zu machen?
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
...
case WM_KEYDOWN:
{
switch(wParam)
{
case VK_UP: ...; ArrowKeys[1]=1; ... break;
}
}
...
}//end switch
if(ArrowKeys[1]==1)
{
SendMessage(hwnd,WM_KEYDOWN,VK_UP,NULL);
}
}//end WndProc()
thx schonmal im vorraus