سؤال

وأنا بناء ج ++ تتريس لعبة (لا ج ++ .NET). أشعر الضوابط بلادي هي غريبة. أريد أن تجعل من ذلك أنه عندما يضغط المستخدم واحد من مفاتيح الأسهم، حول 10ms عقد عليه سيبدأ النوافذ تكرار وظيفة لديها. ومن المقرر أن نحو 500mS افتراضيا، ومن laggy جدا لعبي. كيف يمكنني ضبط السرعة التي يتغير من keydown إلى تكرار keydown؟ لا كم مرة / ثانية فإنه يكرر.

والشكر

و* ما أريد القيام به هو تغيير تكرار تأخير قصيرة

في لوحة التحكم في إعدادات لوحة المفاتيح هناك معدل تكرار، كيف يمكنني ضبط هذا؟

هل كانت مفيدة؟

المحلول

وعادة ما كنت ستفعل لهذا بدلا من الرد على الرسالة WM_CHAR التي تخضع لإعدادات تكرار الرئيسية العادية، وكنت ابحث عن <لأ href = "http://msdn.microsoft.com/en-us /library/ms646280(VS.85).aspx "يختلط =" noreferrer "> WM_KEYDOWN و WM_KEYUP، واتخاذ الإجراءات اللازمة على أساس <م> الموقت أن كنت قد حصلت على التوالي. إذا قمت بتعيين مؤقت لاطلاق النار كل 50 مللي ثانية على سبيل المثال، ثم يمكنك تكرار كل 50 مللي ولا تزال تأخذ أول عمل فورا عندما تحصل على رسالة WM_KEYDOWN.

نصائح أخرى

ووفقا لMSDN، يبدو أيضا مثل هل يمكن استخدام في SystemParametersInfo وظيفة ، وندعو استخدام SPI_SETKEYBOARDSPEED، SPI_SETKEYBOARDDELAY.

والفراغ Key_Set () {      DWORD العمر = 0؛

SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &old, 0);


SystemParametersInfo(SPI_SETKEYBOARDDELAY,0, &old, 0);

و}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top