On 29/03/2013 at 07:13, xxxxxxxx wrote:
User Information:
Cinema 4D Version:
Platform:
Language(s) :
---------
I'm trying to catch when the user pressed Ctrl + A on the keyboard. But when the Ctrl qualifier
is set, BFM_INPUT_ASC is an empty string.
The following is the output for the following actions:
- Click
- Pressing 'a'
- Click
- Pressing Ctrl + 'a'
MaskExportTreeModel::InputEvent
BFM_INPUT_VALUE: 1
BFM_INPUT_ASC:
MaskExportTreeModel::InputEvent
BFM_INPUT_VALUE: 1
BFM_INPUT_ASC: a
MaskExportTreeModel::InputEvent
BFM_INPUT_VALUE: 1
BFM_INPUT_ASC:
MaskExportTreeModel::InputEvent
BFM_INPUT_VALUE: 1
BFM_INPUT_ASC:
CTRL!!
And this is the corresponding code:
Bool MyTreeViewFunctions::InputEvent(void* root, void* ud, GeUserArea* area,
const BaseContainer& msg) {
GePrint(__FUNCTION__);
GePrint("BFM_INPUT_VALUE: " + LongToString(msg.GetLong(BFM_INPUT_VALUE)));
GePrint("BFM_INPUT_ASC: " + msg.GetString(BFM_INPUT_ASC));
if (msg.GetLong(BFM_INPUT_QUALIFIER) & QCTRL) {
GePrint("CTRL!!");
}
return TreeViewFunctions::InputEvent(root, ud, area, msg);
}
Pressing Ctrl alone does not trigger an Input event, only when pressing Ctrl + 'some key' triggers
the method. But the key pressed together with the qualifier is not given. How can I catch the
Ctrl + 'a' key-press correctly?
Thanks!
-Niklas