Кто-нибудь знает, почему возникают некоторые колебания, когда вы удерживаете клавишу клавиатуры и пытаетесь ее обработать? Я вызываю функцию прямо в моем WinProc (...), которая будет перемещать изображение на экране (OpenGL), когда нажата клавиша. Я нажимаю на него и получаю один ответ, затем около 0,5 секунд ничего не происходит, затем он ведет себя как обычно (перемещает на 1 пиксель каждый цикл WinMain).
Мне интересно, задерживаются ли сообщения Windows из-за какой-то функции, которую мне нужно отключить ???
Вот мой код:
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int nshowcmd)
{
bool quit = false;
MSG msg;
createWindow(hinstance, SCRW, SCRH, SCRD, WINDOWED);
// Main loop
while (!quit)
{
if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))
{
if (msg.message == WM_QUIT)
quit = true;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
renderFrame(); // processes graphics
SwapBuffers(hdc);
}
return msg.lParam;
}
и WinProc (было больше случаев, но то же самое ...):
LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
switch(msg)
{
case WM_KEYDOWN:
switch ( wparam )
{
case VK_RIGHT:
key_RIGHT();
return 0;
}
return 0;
}
}
и key_RIGHT:
void key_RIGHT()
{
MoveObjectRight1Pixel();
}