버튼 2개를 작성해 보겠습니다.
1. 먼저 버튼을 디자인(?) 하셔서 4개의 비트맵을 만들어줍니다.
IDB_BTN1OFF, IDB_BTN1ON, IDB_BTN2OFF, IDB_BTN1ON,
2. 다음 넣고자 헤더에 인크루드 해주십시요.
#include "CaptionButton.h" <- 첨부 하겠습니다.
private:
CCaptionButton *m_pCapBtn1;
CCaptionButton *m_pCapBtn2;
선언을 해주신 다음
3. cpp에 (다이얼로그로 작성시) (CWnd* pParent /*=NULL*/) <- 이부분 있죠 ?
m_bSwitch = TRUE;
m_pCapBtn1 = new CCaptionButton;
m_pCapBtn2 = new CCaptionButton;
를 추가해 줍니다.
4. cpp init 부분에 추가를 하시면 됩니다.
CCaptionButton::InitCapBtn(m_hWnd);
m_pCapBtn1->SetBmpID(1, IDB_BTN1OFF, IDB_BTN2ON); // 체크박스 효과를 내줍니다
m_pCapBtn2->SetBmpID(2, IDB_BTN2OFF, IDB_BTN2ON, TRUE); // 일반 버튼의 효과를 내줍니다.
m_pCapBtn1->EnableButton(TRUE); // 버튼을 사용할 수 있게 해야겠죠 ?
m_pCapBtn2->EnableButton(TRUE); // 사용 못하시게 할려면 FALSE를 주십시요.
5. OnDestroy() 부분에는
if(m_pCapBtn1)
delete m_pCapBtn1;
if(m_pCapBtn2)
delete m_pCapBtn2;
를 해줘야 메모리가 클리어 해지겠죠 ?
6. 담은 버튼을 클릭했을때 행위를 지정해 줘야겠죠 ?
LRESULT CTitleBarButtonDlg::OnWMU_Hitcapbutton(WPARAM wParam, LPARAM lParam)
{
switch ((UINT)wParam)
{
case 1: // Button #1 has been hit:
OnCapButton1((BOOL)lParam);
break;
case 2: // Button #2 has been hit:
OnCapButton2((BOOL)lParam);
break;
default: return 0;;
}
return 0;
}
7. void 형태로 OnCapButton1(BOOL bBtnState) 과 OnCapButton2(BOOL bBtnState) 를 만들어 주세요(위저드로요)
그리고 해당하는 버튼을 눌렀을때 이벤트를 작성해 주면 되겠지요 ?
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
[Etc] 가위, 바위, 보 게임 (0) | 2011.04.18 |
---|---|
[MFC] 화면 갱신 우선처리 (0) | 2011.04.18 |
[Progress] 프로그레스바 색상 바꾸기 (0) | 2011.04.18 |
[Button] 버튼에 이미지, 아이콘 적용 (0) | 2011.04.15 |
[Ctrl] 컨트롤 색상, 폰트 변경 (0) | 2011.04.14 |
댓글