TreeViewFunctions::InputEvent() CTRL+A
-
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
-
On 29/03/2013 at 23:01, xxxxxxxx wrote:
This should give you the ASCII decimal value for the key:
LONG chn = msg.GetLong(BFM_INPUT_CHANNEL);
-
On 30/03/2013 at 00:32, xxxxxxxx wrote:
Thank you David, that's it!