Disable close button for Dialog box

Introduction :
There are occasions when we would like to disable the close button on a dialog or any other window.
In this article I am going to show you a simple way to do that. Even though I am going to show you how to disable the close button for a dialog, this technique would work for other windows too and for other system menu commands also.

Technique :
We use GetSystemMenu function to get the handle to the Control menu. Then using that handle we either
call ModifyMenu or
EnableMenuItem to change the control menu.

(1) Using ModifyMenu :
Add the following code to the InitDialog handler of your class


CMenu* mnu = this->GetSystemMenu(FALSE);
mnu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED );

(2) Using EnableMenuItem :
Add the following code to the InitDialog handler of your class

CMenu* mnu = this->GetSystemMenu(FALSE);
mnu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);

Thus by adding a couple of lines we can disable the close button for a dialog or any other window.

Date Last Updated: March 24, 1999

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read