سؤال

في أحد التطبيقات التي أكتبها ، أحتاج إلى استهلاك أحداث رئيسية معينة حتى لا تعالجها التطبيقات الأخرى.

في الكود الخاص بي ، أقوم بعمل com.sun.jna.platform.win32.WinUser.LowLevelKeyboardProc مثل: Genacodicetagpre

عندما أعيد LRESULT (1) جديدًا في نهاية proc (كود التعليق في النهاية) ، يتم استهلاك جميع أحداث لوحة المفاتيح.ومع ذلك ، عند استبدالها بـ

Genacodicetagpre

كما ينبغي ، وحاول فقط استهلاك أحداث لوحة المفاتيح الرئيسية التي أرغب في استهلاكها ، فهي لا تستهلك أيًا من أحداث لوحة المفاتيح.هل لدى أي شخص أي فكرة عن سبب عدم السماح لي باستهلاك الأحداث التي أريدها أو لدي أي فكرة عن كيفية إصلاحها ، لذا ستفعل؟

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

المحلول

للتأكد من أن المفتاح "مستهلك" ، تحتاج إلى التأكد من تجنب استدعاء الخطاف التالي (على سبيل المثال ، إرجاع LRESULT (1)) على جميع متغيرات الأحداث لمفتاح معين ، مثل WM_KEYUP ، و WM_KEYDOWN ، وربماWM_CHAR.

قد تبحث بعض التطبيقات عن أحداث المفاتيح ، والبعض الآخر يبحث عن مفتاح التشغيل ، والبعض الآخر يبحث عن إخراج الحرف الناتج ، لذلك يجب أن تستهلك كل الأحداث المتعلقة بضغطة مفتاح معينة لإجراء ضغط المفتاح المذكور بشكل صحيح "تختفي ".

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