الفرق بين رمز مفاتيح لوحة المفاتيح C ++ ورمز KeyEvent Java

StackOverflow https://stackoverflow.com/questions/2798708

سؤال

لقد لاحظت وجود فرق بين الرموز الرئيسية التي يعطيها VKCode في C ++ وتلك التي يعطيها لنا KeyEvent من Java. (Ofcourse ، يتمتع الأحرف العادية بنفس الكود (0 => 48 تمامًا مثل ASCII) ولكنها تختلف في المفاتيح الأخرى). هل هناك طريقة "للترجمة" من واحد إلى آخر (ما هو المنطق وراء كل واحد؟) أو هل من المفترض أن أستخدم الكثير من المفاتيح و IFS لذلك. إذا كان ذلك مفيدًا ، فإن تطبيقي نصف في C ++ ونصف في Java بسبب الخطافات الأصلية التي يعطينا C ++ ويحصل على مفاتيح المفاتيح التي يضغط عليها المستخدم ومن ثم سيستخدمها Java.

شكرا مقدما.

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

المحلول

أو هل من المفترض أن أستخدم الكثير من المفاتيح و IFS

ربما يمكنك وضعها في أ جدول البحث, ، أي ، ضع الرموز الرئيسية Java في صفيف كبير ، لذلك عليك فقط القيام بذلك javaKeyCode = keyLut[cppScanCode].

يمكن العثور على قائمة واحدة من رموز المسح هنا, ، و ال VK_KEYCODES بالطبع يمكن العثور عليه في مستندات API لـ KeyEvent.

تم تصميم Java لتكون منصة مستقلة ، لذا فإن الضغط على المفتاح الأيسر على سبيل المثال ، سيؤدي دائمًا إلى تحقيق أ VK_LEFT, ، بغض النظر عن رمز المسح. لست متأكدًا تمامًا ، لكنني أفترض أن C ++-Scancode يعتمد على الأجهزة.

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