Главная страница | назад





Article #17501: Trapping the Alt-F4 command.

 Question and Answer Database

FAQ2501C.txt   Trapping the Alt-F4 command.
Category   :VCL
Platform    :All
Product    :C++Builder  3.x

Question:
How do I prevent someone from useing  to shut down an
application that I have written?

Answer:
The answer lies in overriding the WndProc function of your form 
calss thusly:

Add the following to the header file, right under the line that says 
        private: // User declarations
protected:
        virtual void __fastcall WndProc(Messages::TMessage & msg);

and then add the following function to the .cpp file

void __fastcall TForm1::WndProc(Messages::TMessage & msg)
{
  TWMSysCommand & syscmd = reinterpret_cast(msg);
  if (   syscmd.Msg == WM_SYSCOMMAND
      && syscmd.CmdType == SC_CLOSE
      && syscmd.YPos <= 0
     )
  {
    HMENU systemMenu = GetSystemMenu(Handle, FALSE);
    MENUITEMINFO menuItemInfo;
    ZeroMemory(&menuItemInfo, sizeof(menuItemInfo));
    menuItemInfo.cbSize = sizeof(menuItemInfo);
    menuItemInfo.fMask = MIIM_STATE;
    if (   GetMenuItemInfo(systemMenu, SC_CLOSE, FALSE, &menuItemInfo)
        && menuItemInfo.fState & (MFS_DISABLED | MFS_GRAYED)
       )
    {
      return;
    }
  }
  TForm::WndProc(msg);
}



7/2/98 10:32:32 AM
 

Last Modified: 01-SEP-99