Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Accelerator that can't be deleted

0 views
Skip to first unread message

Steve Achelis

unread,
Apr 26, 2010, 11:56:19 AM4/26/10
to
I think my computer is possessed. My app (VS2008 using the MFC
Enhancement Pack) defined an accelerator for the '-' key which posted
the message ID_VIEW_ZOOMOUT (which is defined as 33455). I wanted to
remove this accelerator. So I deleted the following line in the
"IDR_MAINFRAME ACCELERATORS" section of my rc file:

"-", ID_VIEW_ZOOMOUT, ASCII, NOINVERT

Easy enough, but pressing '-' still calls my OnZoomOut function! Hum,
so I search my code for all occurrences of ID_VIEW_ZOOMOUT to make
sure I'm not posting it elsewhere. I'm not. So I delete the
Intermediate file and do a Clean and Rebuild. It's still posting the
message. Using spy, I can see that when WM_CHAR is 45 (the '-'
character), spy reports that the ID_VIEW_ZOOMOUT command is "sent from
an accelerator.” Here is the output from Spy:

<00036> 00130900 S WM_COMMAND wNotifyCode: 1 (sent from an
accelerator) wID:33455

I can’t imagine where this accelerator is defined. I tried removing
all but one line from the ACCELERATORS section of the rc file (if I
remove all accelerator keys, it goes away, I think this is because
there is no longer an accelerator handler). I just have this one dummy
line in the ACCELERATOR section:

"B", 100, VIRTKEY, CONTROL, NOINVERT

I’ve searched the RC to make sure there isn’t another ACCELERATOR
section. I’ve searched to make there isn’t another command with the
same value (33455). I’ve changed the value of ID_VIEW_ZOOMOUT (to
33456) to see if that’d make a difference. FWIW, if I do a “return” at
the beginning of my CMainFrame::PreTranslateMessage the command
doesn’t get processed (because I’m not processing the keystroke).

Anyway, I’m stumped. Any ideas?

Thanks!

0 new messages