안녕하세요
캡션바 영역에 종료버튼을 죽였다 살렸다 하는 건데요.. 쩝
필요하신분이 있는지 모르겠네요.. 어쨌든
많은 Menu function중에서 ModifyMenu or EnabeldMenuItem을 쓰시면 되는데요..
ModifyMenu는 맨뒤의 인자로 스트링도 바꿀수 있죠.. 근데 전 별로예요..
그래서 EnableMenuItem을 썼습니다.
그리고 DrawMenuBar는 마지막에 호출해주셔야 상태가 바뀐모습을 볼 수 가 있습니다.
// Disable 시키기...
void __fastcall TForm1::Button3Click(TObject *Sender)
{
HMENU hMenu = GetSystemMenu(Handle, false);
// ModifyMenu(hMenu, SC_CLOSE, MF_BYCOMMAND|MF_GRAYED, SC_CLOSE, "닫기(&X)");
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);
DrawMenuBar(Handle);
}
//---------------------------------------------------------------------------
// Enable 시키기...
void __fastcall TForm1::Button4Click(TObject *Sender)
{
HMENU hMenu = GetSystemMenu(Handle, false);
// ModifyMenu(hMenu, SC_CLOSE, MF_BYCOMMAND&~MF_GRAYED, SC_CLOSE, "닫기(&X)");
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND&~MF_GRAYED);
DrawMenuBar(Handle);
}
//---------------------------------------------------------------------------
밑에 부분은 Maximize 버튼을 활성화 비활성화 하는건데요..
위에 방법으로는 안되더군요..
이렇게 하면 윈도우를 다시 생성 하면서 껌벅껌벅 거린답니다..
웬만하면 이방법은 별로 인거 같아요..
어쨌든 아래 소스 입니다.
void __fastcall TForm1::Button5Click(TObject *Sender)
{
TBorderIcons tempBI = BorderIcons;
tempBI >> biMaximize;
BorderIcons = tempBI;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
TBorderIcons tempBI = BorderIcons;
tempBI << biMaximize;
BorderIcons = tempBI;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
TBorderIcons tempBI = BorderIcons;
tempBI << biMinimize;
BorderIcons = tempBI;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
TBorderIcons tempBI = BorderIcons;
tempBI >> biMinimize;
BorderIcons = tempBI;
}
//---------------------------------------------------------------------------
그럼 즐거운 하루 되십시요..
|