Re: Framework enables menu item regardless?
On Tue, 19 Jun 2007 00:41:45 +0200, Eric Lilja
<mindcoolerremoveme@gmail.com> wrote:
Hello, one of the menu items in my resource script is the following:
MENUITEM "S&top", ID_STOP, GRAYED
(This is actually an old project I'm porting.)
I noticed that even though it has GRAYED set, it becomes enabled as soon
as I write a command handler for it. It doesn't make any difference,
though, because the code for the ON_UPDATE_COMMAND_UI that corresponds
to this menu item will be the same. I just thought it was odd that the
"GRAYED" flag/attribute or whatever it's called was ignored.
It's a program that runs a simulation and has start and a stop menu
item, and these should be disabled when appropriate. When the program
is initially loaded no simulation is running, thus the GRAYED part in
the resource script, I guess (I didn't write that part myself).
MFC recomputes the item status whenever it displays a menu or toolbar item
and just before it invokes the command. It does this through the
ON_UPDATE_COMMAND_UI mechanism, and it considers a command bound to a
handler function to be enabled in the absence of an update handler that
tells it otherwise. This overrides the resource file settings.
--
Doug Harrison
Visual C++ MVP