본문 바로가기

old drawer/C, C++, MFC

[MFC] 버튼에 이미지 입히기

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 속성을 클릭하면 리소스에 추가한 이미지들이 나오는데 그중 입히고 싶은것을 선택한다.

  - 끝

  - 특징 : 역시나 간단하다. 버튼을 눌렀을 때 이미지는 움직이지 않고 고정되어있다. 쪼금 성의없어 보임.