Objective measurement of usability is not counting mouse clicks! It's about how easily a user can accomplish a task or series of tasks.
To illustrate. If you open a project's properites in Visual Studio, you have to click the mouse several times to find the category of item you are looking for and to change it. If mouse clicks were the definitive usability parameter, ALL the options should be in a single long list and that list would be maximized to fill the screen.
Ironically, when you do that, it almost always takes the user LONGER to accomplish a given task regardless of how many mouse clicks they do. (Yes, this has been measured.)
Why didn't you mention OWL to begin with? Why didn't you post the code you did? Why did you state your original posting as a theoretical question? If you had just posted the last half of your last posting, there wouldn't be dozens of replies.
In the past, many classes in OWL didn't use the underlying Windows constructs, though this may have changed. I suggest you step through the OWL code and see what they are doing differently. If I remember right OWL also handles menus differently than MFC (it's been eight years since I did OWL programming and then it was for one project.)
I suspect that OWL linked the popup menu handler with all the menu handlers.
In MFC you need to call menu.EnableMenuItem() or menu.CheckMenuItem() for those items you want to enable/check, before you call TrackPopupMenu.
As to how to make the menu "stick"; I don't have a clue.
