JHB의 프로그래밍 삽질기

MFC Button위에 Bitmap 입히기 본문

PROGRAMMING/C C++ MFC

MFC Button위에 Bitmap 입히기

roter 2010.07.15 16:04

버튼 모양을 맘대로 만들어 줄 때.. Bitmap으로 바꿔주기 위해 사용한다.
Owner Draw라는 기법(?)인데 Combo, List, Button에 사용한다.

버튼으로 예를 들면
Dialog에 Button을 그린 후 Add Variation해서 CButton으로 등록한다.

이름을 m_btnTest로 했으면 CButton m_btnTest로 돼있을텐데 여기서 CButton을 강제로 CBitmapButton으로 바꿔준다. (CButton을 상속받은 클래스이다.)

버튼의 4가지 상태를 등록할 수 있는데,
가만히 있을때(U), 눌렸을 때(D), 포커스가 갔을때(F), 무효됐을때(D) 이렇게 4가지이다.
각각의 Bitmap을 Resource에 import한다.

그 후 OnInitDialog() 함수에다가 아래줄을 추가해준다.

m_btnTest.LoadBitmaps(U일때Bitmap이름, D일때 Bitmap이름, F일때 Bitmap이름, D일때 Bitmap이름);
예를 들어 가만히 있을 때의 비트맵 이름이 IDB_TEST_U 라면

m_btnTest.LoadBitmaps(IDB_TEST_U,NULL,NULL,NULL); 해주면 된다.
그리고 이미지에 버튼 크기를 맞추기 위해
m_btnTest.SizeToContent(); 를 해준다.

마지막으로 버튼의 OwnerDraw항목을 True로 해준다.
6 Comments
댓글쓰기 폼