Notice
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 |
Tags
- Quiz
- control
- java
- 드라이버
- db
- database
- Visual C++
- driver
- API
- linux
- source
- sqlite3
- kering
- 음악
- Python
- 안드로이드
- NDK
- C
- it
- 리눅스
- MFC
- 프로그래밍
- Troubleshooting
- UI
- winapi
- jni
- android
- C++
- jni강좌
- gcc
- Today
- 57
- Total
- 585,772
JHB의 프로그래밍 삽질기
MFC Button위에 Bitmap 입히기 본문
버튼 모양을 맘대로 만들어 줄 때.. 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로 해준다.
'PROGRAMMING > C C++ MFC' 카테고리의 다른 글
C++ Vector와 List의 사용 (0) | 2010.09.07 |
---|---|
MFC에서 Draw 사용시 주의할 점들 (0) | 2010.08.24 |
MFC 다이얼로그 상속 받기 (0) | 2010.08.18 |
MFC Dialog Base 프로그램에서 엔터치면 꺼지는 문제 해결 (1) | 2010.07.19 |
MFC Button위에 Bitmap 입히기 (6) | 2010.07.15 |
MFC 기본 TIP (0) | 2010.07.15 |
Vista에서 UAC elevation 방법 (2) | 2010.07.13 |
MFC Dialog내에서 Control의 위치 구하기 (2) | 2010.07.09 |
UAC 내에서 한시적으로 Admin권한 상승 시키기 (0) | 2010.07.08 |
- Tag
- Button, control, MFC, Visual C++
6 Comments
-
손님 2011.09.18 19:17 신고 좋은 정보 감사합니다.
-
roter 2011.09.19 09:37 신고 들려주셔서 감사합니다^^
-
태린 2012.10.31 11:11 신고 버튼에 우측 마우스를 눌렀는데 변수 추가 항목이 disable되어 있습니다.
이런 경우는 어떻게 해야 됩니까? -
roter 2013.12.10 09:03 신고 아이구 리플을 이제야 읽었네요 ㅠㅠ 해결하셨길 바랍니다!
-
sonoball 2013.12.04 14:03 신고 상태에 따른 비트맵을 저렇게 추가시키는지는 몰랐네요 계속 그 상태가 될때마다 다른 비트맵을 로드시키는 코딩을 하곤 했는데
-
roter 2013.12.10 09:02 신고 MFC 개발을 하다보면 생각보다(?) 기본적으로 지원해 주는 기능이 꽤 많다는것에 놀라곤 합니다 ㅎㅎ