SC_CLOSE: MF_GRAYED - BUG?
Jeffrey Smith -- wyvern@msn.com
Thursday, September 12, 1996
Environment: VC++4.2/MFC Win95
I'm using MDI and preventing its views from being closed but I still want to
enable min/max capability.
So, in a view's frame class' ActivateFrame() I get its menu then:
menu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND | MF_GRAYED )
Problem:
This works great, except when the view is maximized. The close button moves up
to the MDI frame keeping
the grayed out look but now closes the view if the user clicks on it. Yikes!
Workaround:
The short answer is: add ON_WM_CLOSE in the frame's message map then override
OnClose() to do nothing.
This does what I wanted. It prevents the view from being closed.
Appeal for help
Has anyone seen this behavior before? Is it a bug? Is there an easier way or a
better solution to prevent the
user from closing views?
Many thanks,
Jeff Smith
Vincent Mascart -- 100425.1337@compuserve.com
Sunday, September 15, 1996
>From: "Jeffrey Smith"
>Sent: vendredi 13 septembre 1996 10:18
>To: "MFC List - Submit"
>Subject: SC_CLOSE: MF_GRAYED - BUG?
>Environment: VC++4.2/MFC Win95
>
>I'm using MDI and preventing its views from being closed but I still want to
>enable min/max capability.
>So, in a view's frame class' ActivateFrame() I get its menu then:
> menu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND | MF_GRAYED )
>
>Problem:
>This works great, except when the view is maximized. The close button moves up
>to the MDI frame keeping
>the grayed out look but now closes the view if the user clicks on it. Yikes!
You should consider disabling the menu item in OnInitialUpdate() of your view
with
GetParentFrame()->GetSystemMenu(FALSE)->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND |
MF_GRAYED) );
Vincent Mascart
100425.1337@compuserve.com
| Вернуться в корень Архива
|