Prev: Failed to create empty document.
Next: Task
From: Steve Achelis on 26 Apr 2010 15:24 I think my computer is possessed. My app (in 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 deleted the Intermediate file and did 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 cant 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 currently just have this one dummy line in the ACCELERATOR section: "B", 100, VIRTKEY, CONTROL, NOINVERT Ive searched the project to make sure there isnt another ACCELERATOR section. Ive searched to make there isnt another command with the same value (33455). Ive changed the value of ID_VIEW_ZOOMOUT (to 33456) to see if thatd make a difference (it still gets posted). FWIW, if I do a return at the beginning of my CMainFrame::PreTranslateMessage the command doesnt get processed (because Im not processing the keystroke). Oh, I've checked my PreTranslateMessage to make sure it isn't handling the message (although Spy wouldn't be telling me it was "sent from an accelerator" in that case). Im truly stumped. Any ideas? Thanks! [FWIW, I posted this message four hours ago and I received an email confirming it, but the message never appeared on microsoft.public.vc.mfc. Apologies if this later turns into a duplicate post!]
From: David Ching on 26 Apr 2010 19:37 "Steve Achelis" <info(a)RescueRigger.com> wrote in message news:7da2d348-e6dd-4fc7-bfb3-886e02e14d26(a)m25g2000prj.googlegroups.com... > I think my computer is possessed. My app (in 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! Are you sure you don't have another accelerator table in res\<your app>.rc2? I would search for ID_VIEW_ZOOMOUT in all files in the folder. -- David
From: Tom Serface on 26 Apr 2010 20:27 Not sure what is going on, but couldn't you comment out your handler code so that it would effectively ignore the message? Also, is the message still in the resource.h file? Could be this is a standard Windows behavior and you're just still handling it even if it's not in your specific accelerator. Tom "Steve Achelis" <info(a)RescueRigger.com> wrote in message news:7da2d348-e6dd-4fc7-bfb3-886e02e14d26(a)m25g2000prj.googlegroups.com... > I think my computer is possessed. My app (in 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 deleted the > Intermediate file and did 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 currently just have this > one dummy line in the ACCELERATOR section: > > "B", 100, VIRTKEY, CONTROL, NOINVERT > > I�ve searched the project 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 (it still gets posted). > 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). Oh, I've checked my > PreTranslateMessage to make sure it isn't handling the message > (although Spy wouldn't be telling me it was "sent from an accelerator" > in that case). > > I�m truly stumped. Any ideas? > > Thanks! > > [FWIW, I posted this message four hours ago and I received an email > confirming it, but the message never appeared on > microsoft.public.vc.mfc. Apologies if this later turns into a > duplicate post!] >
From: Steve Achelis on 26 Apr 2010 20:37 On Apr 26, 5:37 pm, "David Ching" <d...(a)remove-this.dcsoft.com> wrote: > Are you sure you don't have another accelerator table in res\<your app>.rc2? > I would search for ID_VIEW_ZOOMOUT in all files in the folder. > > -- David I've searched for ID_VIEW_ZOOMOUT, searched for the literal 33455 (in case it was defined and associated with the '-' key), checked rc2, and searched for ACCELERATORS (case sensitive, which is how it appears in the rc file). And if I remove that last, lone, dummy accelerator (see original post), the problem goes away. If I keep the dummy entry and view the accelerators from the resource editor (rather than from the text editor), only the one dummy entry is there. Still stumped.
From: David Ching on 26 Apr 2010 21:57
"Steve Achelis" <info(a)RescueRigger.com> wrote in message news:e3eb7e50-0781-4a7c-a752-f64cfb69c595(a)g1g2000pre.googlegroups.com... > On Apr 26, 5:37 pm, "David Ching" <d...(a)remove-this.dcsoft.com> wrote: > >> Are you sure you don't have another accelerator table in res\<your >> app>.rc2? >> I would search for ID_VIEW_ZOOMOUT in all files in the folder. >> >> -- David > > I've searched for ID_VIEW_ZOOMOUT, searched for the literal 33455 (in > case it was defined and associated with the '-' key), checked rc2, and > searched for ACCELERATORS (case sensitive, which is how it appears in > the rc file). And if I remove that last, lone, dummy accelerator (see > original post), the problem goes away. If I keep the dummy entry and > view the accelerators from the resource editor (rather than from the > text editor), only the one dummy entry is there. > > Still stumped. Could you open your .exe in Visual Studio (open the .exe 'Resources') and see what accelerators are actually compiled into the .exe. If worst comes to worst you can delete any ones that shouldn't be there and re-save the ..exe. This is really weird. -- David |