2014년 10월 27일 월요일

Skinned Button control For WTL (WTL에서 버튼에 이미지 넣기)

wblinds_src.zip

원본 글 : http://www.viksoe.dk/code/wblinds.htm

버튼에 이미지 넣을 때 좋은 녀석인 것 같다.

우선 이 놈을 사용하려면 두 개의 헤더파일이 필요하다.

#include < atlctrls.h >
#include <atlframe.h>

stdafx.h에 추가해주자.

그 다음, 버튼이 추가될 클래스에서 작업을 하면 되겠지?

CSkinnedButtonCtrl m_ctrlButton;

이 놈을 선언해주고.

m_ctrlButton.SubclassWindow(GetDlgItem(IDC_BUTTON1));
m_ctrlButton.SetBitmap(IDB_AQUA);

위에 처럼 하면 IDB_AQUA 이미지로 버튼이 세팅된다. SetBitmap 함수를 보면 알겠지만, 하나의 이미지에 버튼이 눌렸을 때와 마우스가 올라갔을 때...등등의 이미지를 놓아주면 되는 것 같다.

그리고 메시지 맵에 이 놈도 추가해줘야 한다.

REFLECT_NOTIFICATIONS()

잘 작동 된다.ㅎㅎ

09/23 기능 추가.

버튼에 툴팁 기능이 필요해서 추가한다.
WBlinds.h

위 파일에 보면 SetTooltipText 함수가 추가되었다.

m_ctrlButton.SetTooltipText("버튼");

위와 같이 하면, 버튼 위에 마우스가 위치했을 때, '버튼' 이라는 툴팁이 보이게 된다.

소스코드는 바로 위 파일을 쓰면 된다. 굳이 페이지 상단에 있는거 안써도 됨.

댓글 없음: