음 :
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 :
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 (많은 경우하지만 같은 일 ... 있었다) 표준 Windows 기능을 다루고 있다고 생각합니다. Windows는 키가 표시되지 않을 때 반복 키 입력 이벤트가 발생하기 전에 보통 지연됩니다.
다른 방법에 대해서는 잘 모르지만 첫 번째 키를 누르면 몇 밀리 초마다 키가 표시되지 않는지 확인한 다음 그에 따라 코드를 처리하는 타이머를 활성화 할 수 있습니다.
나는 그것이 당신이 가진 문제를 해결할 것이라고 생각합니다.
나는 어리석은 해결 방법을 취해야 할 것 같았습니다 ... 문명화 된 속도로 메시지를 보내도록 Windows를 강요 할 방법이 없습니까? –
거대한 키보드입니다. :) 대부분의 표준 PC 키보드는 약 105 개의 키가 있으므로 128 비트는 나에게 많이 들립니다. – unwind
@unwind : 대부분의 키보드에는 정상적인 키 수가 있지만 가상 키 코드 (VK_ * 상수)의 범위는 0에서 255까지입니다. –