क्या मैं सही हूं, कि सी++ विंडोज एप्लिकेशन में ALT कुंजी प्रेस का पता लगाने का एकमात्र तरीका कीबोर्ड हुक है?

कई चाइल्ड विंडो हो सकती हैं और उनमें से प्रत्येक के लिए WM_KEYDOWN सेट करना एक विकल्प नहीं है।

एक्सेलेरेटर "VK_MENU, some_id, VIRTKEY" काम नहीं कर रहा है।

ALT कार्यक्षमता को चुराने के लिए कोई मुख्य मेनू नहीं है। सादा Win32, कोई एमएफसी नहीं।

-1
Andrei Kalantarian 24 नवम्बर 2020, 22:03

1 उत्तर

सबसे बढ़िया उत्तर

समाधान मिला:

// Main message loop:
while (GetMessage(&msg, nullptr, 0, 0)) {
    if (msg.message == WM_SYSKEYDOWN && msg.wParam == VK_MENU) {
        // single ALT key pressed, do something
    }
    if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}
0
Andrei Kalantarian 26 नवम्बर 2020, 00:11