Вы можете использовать логические переменные и установить их в значение true, когда клавиша нажата. Если значение переменной равно true, действие прекращается. И когда клавиша поднята, вы устанавливаете переменную в false.
// ...
some switch
// ...
case WM_KEYDOWN:
if (!keydown) {
// do the magic
keydown=true;
}
break;
case WM_KEYUP:
keydown=false;
break;
Конечно, если вы хотите что-то делать постоянно, вы должны, например, установить таймер в операторе if (! Keydown) и остановить таймер, когда пользователь отпускает ключ.