1. Button 생성
2. 속성 창에서
- Bitmap = True
- Owner Draw = True
3. 다이얼로그에 CBitmapButton 클래스 멤버변서 하나를 추가
CBitmapButton m_BitmapButton;
4. OnInitDialog() 함수에서
m_BitmapButton.Attach(((CBitmapButton *)GetDlgItem(IDC_BITMAP_BUTTON))->m_hWnd);
m_BitmapButton.LoadBitmaps(IDB_BITMAP_BUTTONUP, IDB_BITMAP_BUTTONDOWN, IDB_BITMAP_BUTTONUP, IDB_BITMAP_BUTTONX);
m_BitmapButton.SizeToContent();
를 추가해준다.
여기서 사용된 비트맵이미지
- IDB_BITMAP_BUTTONUP :
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
출처http://blog.naver.com/sinsimy?Redirect=Log&logNo=120148820772
버튼에 이미지 넣는 방법은 여러가지가 있지만 그중에서 3가지 정도만 다루어본다.
*공통으로 미리 해야할 것
- 일단 버튼에 입힐 이미지를 리소스에 추가하고 ID를 지정한다.
- 버튼을 멤버변수로 추가한다.
1. CButton
- 버튼 속성중 Bitmap 항목을 True 로 지정한다.
- 헤더에 CBitmap 멤버변수를 추가한다.
예) CBitmap m_bmpOK;
CBitmap m_bmpNO;
CButton m_btnOK;
CButton m_btnNO;
- 비트맵 변수에 LoadBitmap()으로 리소스에 추가한 비트맵 이미지를 입힌다.(OnInitDialog)
예) m_bmpOK.LoadBitmap(IDB_OK1);
- 마지막으로 버튼에 비트맵 이미지를 지정한다.(OnInitDialog)
예) m_btnOK.SetBitmap(m_bmpOK);
- 끝
- 특징 : 간단하다. 이미지가 한개만 있으면 된다. 버튼을 누를 때 이미지 자체가 움푹 들어가면서 눌리는 느낌이 난다.
2. CBitmapButton
- 헤더파일에 멤버변수 선언부분을 수정한다.
CButton -> CBitmapButton 으로 수정!
- 버튼 속성중 Owner Draw 항목을 True 로 지정한다.
- OnInitDialog에서 LoadBitmaps()으로 초기화 한다.
예)m_btnBmp.LoadBitmaps(OKU, OKD, OKF, NULL);
여기서 OKU는 눌리지 않은 상태
OKD는 눌린 상태
OKF는 포커스를 받은 상태
NULL은 비활성화된 상태의 비트맵 리소스 ID 이다.
- 끝
- 특징 : 이것도 은근 간단하지만 이미지가 여러개 필요하다. 버튼을 꾸밀 수 있는 정도가 가장 높다.
3. MFC Button Control
- 버튼 속성중 캡션을 지운다.(안지워도 되는지는 모름)
- 속성중 Image 속성을 클릭하면 리소스에 추가한 이미지들이 나오는데 그중 입히고 싶은것을 선택한다.
- 끝
- 특징 : 역시나 간단하다. 버튼을 눌렀을 때 이미지는 움직이지 않고 고정되어있다. 쪼금 성의없어 보임.
'old drawer > C, C++, MFC' 카테고리의 다른 글
[C/C++, MFC] 런타임 라이브러리 (0) | 2013.02.27 |
---|---|
[C++]프로그램 실행 ShellExecute(), ShellExecuteEx(), CreateProcess() (0) | 2013.02.07 |
WinExec() CreateProcess() ShellEcecute() ShellExecuteEx() (0) | 2013.02.01 |
[Win32 API] ExpandEnvironmentStrings (0) | 2013.01.11 |
[MFC/C++] SHGetFileInfo 를 이용한 파일 속성 파악 (0) | 2013.01.11 |