|
ComboBox나 Grid , ListView 같은데.. CheckBox나 RadioBox 같은것을 넣을때 종사용하는 방법인데요..
DrawFrameControl 이라는 api가 있습니다.
잘 사용하면 유용하죠
아래 예제를 참조하세요
RECT rc=Rect(10,10,10+70,10+25);
RECT rc2=Rect(rc.left+3,rc.top+3,rc.right -3,rc.bottom-3);
RECT rc3=Rect(rc.left+3,rc.top+5,rc.right -3,rc.bottom-3);
TRect rc4=Rect(rc.left-1,rc.top-1,rc.right +1,rc.bottom+1);
//기본 버튼
void __fastcall TForm1::Button2Click(TObject *Sender)
{
DrawFrameControl(Canvas->Handle,&rc,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_INACTIVE);
}
//버튼이 눌려진 상태
void __fastcall TForm1::Button3Click(TObject *Sender)
{
DrawFrameControl(Canvas->Handle,&rc,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_PUSHED);
}
//---------------------------------------------------------------------------
//버튼에 Focus가 간 상태
void __fastcall TForm1::Button4Click(TObject *Sender)
{
DrawFrameControl(Canvas->Handle,&rc,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_INACTIVE);
DrawFocusRect(Canvas->Handle,&rc2);
}
//버튼에 Push & Focus가 간 상태
void __fastcall TForm1::Button1Click(TObject *Sender)
{
DrawFrameControl(Canvas->Handle,&rc,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_PUSHED);
DrawFocusRect(Canvas->Handle,&rc2);
}
//---------------------------------------------------------------------------
//버튼에 Push & Focus가 간 상태에 text출력
void __fastcall TForm1::Button5Click(TObject *Sender)
{
DrawFrameControl(Canvas->Handle,&rc,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_INACTIVE);
DrawFocusRect(Canvas->Handle,&rc2);
DrawTextA(Canvas->Handle,"MyBtn",5,&rc3,DT_CENTER|DT_VCENTER );
}
//---------------------------------------------------------------------------
//바깥쪽에 Focus상태 Rect을 그려줌..
void __fastcall TForm1::Button7Click(TObject *Sender)
{
Canvas->Rectangle(rc4);
DrawFrameControl(Canvas->Handle,&rc,DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_PUSHED);
DrawFocusRect(Canvas->Handle,&rc2);
DrawTextA(Canvas->Handle,"MyBtn",5,&rc3,DT_CENTER|DT_VCENTER );
}
//---------------------------------------------------------------------------
그럼..
newhuni 님이 쓰신 글 :
: 안녕하세요.
:
: 이미지 에디터를 만들고 있는데 버튼을 어떻게 만들어야 할지 모르겠습니다.
:
: 사각형을 그리는 것 처럼 마우스로 영역을 지정하면 그 크기만한 버튼모양을 그리고 싶습니다.
:
: 보통 폼에 TButton을 놓으면 입체적으로 보이잖아요...
:
: 그것을 어떻게 구현해야 할까요??
:
: 조언부탁드립니다.
|