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