フォームの閉じるボタンを有効化・無効化する
フォームの閉じるボタンを有効化・無効化するには、EnableMenuItem関数を使います。また、閉じるボタンの状態を取得するには、GetSystemMenu関数を使います。例えば、次のようにします。
//---------------------------------------------------------------------------
bool __fastcall IsCloseButtonEnabled(TCustomForm* AForm)
{
const UINT state = GetMenuState(
GetSystemMenu(AForm->Handle, false),
SC_CLOSE,
MF_BYCOMMAND);
if(state == 0xFFFFFFFF) {
throw EInvalidArgument("Cannot get the state of a close button.");
}
return (state & MF_GRAYED) == 0;
}
//---------------------------------------------------------------------------
void __fastcall SetCloseButtonEnabled(TCustomForm* AForm, bool AEnabled)
{
if(EnableMenuItem(
GetSystemMenu(AForm->Handle, false),
SC_CLOSE,
MF_BYCOMMAND | (AEnabled ? MF_ENABLED : MF_GRAYED)) == 0xFFFFFFFF) {
throw EInvalidArgument("Cannot set the state of a close button.");
}
}
//---------------------------------------------------------------------------
最終更新: 2008-07-17
戻る