Article # 376, added by Geoworks, historical record
| first |
previous |
index |
next |
last |
Mouse events combined with keypresses.
Q. How do I detect when the user is holding the Control key and clicking the mouse button at the same time? Also, what about the Shift keys? A. When you receive a MSG_META_START_SELECT, you will get a parameter called inputState. The high byte of this word parameter contains data indicating the special mode of the mouse click. For a normal mouse click, the following bits are set: UIFA_SELECT | UIFA_IN For a Control-click (holding Control key while clicking mouse): UIFA_SELECT | UIFA_PREF_A | UIFA_IN For a Shift-click (holding Shift key while clicking mouse): UIFA_SELECT | UIFA_CONSTRAIN | UIFA_PREF_B | UIFA_IN So, to detect when the user is holding down the Control key and clicking the mouse at the same time, do this in your MSG_META_START_SELECT method: if ( GET_UI_FUNCTIONS_ACTIVE( inputState ) & UIFA_PREF_A ) { /* User clicking while pressing Control */ } For detecting when the user is pressing the Shift key and clicking: if ( GET_UI_FUNCTIONS_ACTIVE( inputState ) & UIFA_PREF_B ) { /* User clicking while holding Shift key. */ }