멤버변수를 추가 합니다.
CBitmapButton m_btnButton;
OnInitDialog() 함수에 아래와 같이 초기화 합니다.
m_btnButton.Create(NULL, WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, CRect(230,50,0,0), this, 1000);
CRect(230,50,0,0) 는 위치와 크기
1000은 적용시킬 버튼의 리소스 아이디 입니다.
만약 1로 하면 확인버튼의 기능을 동일하게 사용합니다.
m_btnButton.LoadBitmaps(IDB_BTNFRAME,IDB_BTNFRAME_FOC,IDB_BTNFRAME_SEL,IDB_BTNFRAME);
사용할 리로스 , 버튼이 선택되었을때의 리소스,
버튼이 포커스 돼었을때의 리소스, 해제되었을때의 리소스
m_btnButton.SizeToContent();
리소스의 크기에 맞게 버튼을 설정해주는 함수입니다.
---------------------------------------------------------------------------
* CBitmapButton 만드는 법_1
CBitmapButton으로 만든 버튼은 push button 형식이다.
1) 먼저 Form에 버튼을 만들고 Style에서 Owner Draw를 꼭 체크
2) 버튼의 캡션을 간단하게 지정(중요)
예를 들어 캡션이 "ONE"이라면..
3) 이제 리소스에 버튼 그림들을 추가합니다.
이때 추가 하는 리소스 이름은
2번에서 지정한 캡션의 이름뒤에 "D" "F" "U" "X" 를 붙입니다
이를테면 "ONED" "ONEF" "ONEU" "ONEX" 같은 식으로 말입니다.
"U"=UP/ "D"=Down/ "F"=포커스/ "X"=disable 의 뜻
4) CBitmapButton 객체를 멤버변수로 만듭니다.
CBitmapButton m_ButtonOne;
5) OnInitialUpdate() 에 다음과 같이 씁니다
m_ButtonOne.AutoLoad(IDC_BUTTON_ONE,this);
* CBitmapButton 만드는 법_2
방법 1과 크게 다르지 않고, 맵 연결 방법에서 차이가 있다.
1) 버튼의 속성중에 property -> style 에서 Owner draw 꼭 check !!
2) 비트맵으로 씌울 그림들을 프로젝트의 Bit 멥 부분에 Insert 시킴
(정적인 느낌을 피하기 위해 그림은 두개를 준비)
3) 해당 다이알로그 박스의 버튼에 해당하는 변수를 추가시켜 줌(물론 해드에 변수를 정의)
.h 파일 부분에서 public 부분에 만들어 주시고
CBitmapButton m_OK;
CBitmapButton m_Cancel;
.cpp 부분에
void CADD_AND_DEL_FRIEND::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CADD_AND_DEL_FRIEND)
...
DDX_Control(pDX, IDOK, m_OK); // 변수를 해당 아이디와 연결 시켜준다.
DDX_Control(pDX, IDCANCEL, m_Cancel);
//}}AFX_DATA_MAP
}
4) 다이알로그가 생성되는 초기화 부분에서 버튼과 이미지를 연결시켜준다.
BOOL CADD_AND_DEL_FRIEND::OnInitDialog()
{
CDialog::OnInitDialog();
// 버튼이 눌러지기전 이미지와 눌렸을때 이미지를 설정해 준다.
m_OK.LoadBitmaps( IDB_OKU, IDB_OKD );
m_Cancel.LoadBitmaps( IDB_CancelU, IDB_CancelD );
// 버튼을 이미지 크기에 맞춰서 씌워준다.
m_OK.SizeToContent();
m_Cancel.SizeToContent();
return true;
}
'C/C++/MFC' 카테고리의 다른 글
DOM 사용을 위한 속성 및 메소드 요약 가이드 (0) | 2009.05.26 |
---|---|
DOM 사용을 위한 속성 및 메소드 요약 가이드 (0) | 2009.05.18 |
다이얼로그에 배경 입히기 (0) | 2009.03.21 |
스태틱 컨트롤 배경 투명하게 하기 (0) | 2009.03.21 |
마우스 메세지 와 wParam,lParam값 (0) | 2009.03.21 |