public bool PreFilterMessage(ref Message msg)
{
switch (msg.Msg)
{
case WM_SYSKEYDOWN: // Обработка шорткатов "Alt + xxx"
case WM_KEYDOWN: // Обработка обычных шорткатов
var ctrl = GetControlFromHandle(msg.HWnd);
var keyData = (Keys)(int)msg.WParam | Control.ModifierKeys;
#if false //DEBUG
Console.WriteLine("msg.Msg: {0}, keyData: {1}", msg.Msg, keyData);
#endif
var shortcutNode = FindShortcutNode(ctrl);
if (shortcutNode != null)
if (shortcutNode.ProcessMessageKey(ctrl, keyData, this))
return true;
break;
}
return false;
}
#endregion