VC++ 4.0 / NT 3.51 - Trapping 'default usage' Keys
Roger Longren -- rlongren@execpc.com
Tuesday, April 02, 1996
Part of my MFC application creates a terminal emulation window
as an MDI child. Because I want to provide user control of the
emulation keys, I need to prevent most of the default keyboard
actions from occurring.
Although my main application uses context sensitive help, I need
to prevent the default F1 and shift/F1 action when the terminal
emulation window has focus. Other "default action" keys are
also a problem, such as alt/F4, F10, etc.
Can anyone help guide me to a proper method of gaining complete
control over these keystrokes? Remember, I want the default
action at all times other than when a specific MDI child has
focus.
Thanks in advance for any help.
Roger Longren
Greg D. Tighe -- gdt@eng.aisinc.com
Thursday, April 04, 1996
[Mini-digest: 2 responses]
> Can anyone help guide me to a proper method of gaining complete
> control over these keystrokes? Remember, I want the default
> action at all times other than when a specific MDI child has
> focus.
>
> Thanks in advance for any help.
> Roger Longren
>
Override PreTranslateMessage() in your terminal view class. You can
look for WM_KEYDOWN messages and process the ones you want. If you
do process a keystroke message and don't want the default behavior,
return TRUE. For all other messages return FALSE to get the default
behavior.
-Greg Tighe
Applied Intelligent Systems, Inc.
Ann Arbor, MI
gdt@aisinc.com
-----From: Dan Kirby
Roger, you need to trap the message before the message gets translated
(before the TranslateAccelerators and TranslateMessage calls). You can do
this in MFC by overriding the PreTranslateMessage function of your
CMDIChildWnd.
--dan
| Вернуться в корень Архива
|