[API] 버튼에 이미지 씌우기

API로 이미지로 된 버튼을 만들고 싶어서

맨 처음에는 CreateWindow로 버튼을 만들었는데 이제는 도구박스로도 만들 수 있다 헤헤

그냥 SendMessage로 이미지만 전달해주면 오케이~

 

 

1. 리소스에 버튼에 그려줄 비트맵 저장

 

2. 리소스에 저장된 이미지를 불러온다.

LoadBitmap 함수를 이용하여 HBITMAP 구조체에 비트맵을 저장

 

3. 버튼을 생성한다 (도구 상자를 이용하여 버튼 생성시 속성에서 Bitmap TRUE로) 

(CreateWindow로 이용할 경우에도 속성에 BS_BITMAP을 추가하여 설정 할 수 있다.)

 

 

 

 

4. 버튼의 핸들을 구한다.

GetDlgItem 함수로  

5. 이미지를 보낸다.

SendMessage( 4번에서 구한 핸들 값, BM_SETIMAGE, 0, (LPARAM)저장한 비트맵)

 

 

 

 

 

HBITMAP hBitmap;

HWND hDlg;

 

switch(message)

{

 

case WM_CREATE:

hBitmap = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP1)); // 비트맵 읽어온다

hDlg = GetDlgItem(hDlg, IDC_BUTTON1); // 버튼의 핸들 구하기

SendMessasge(hDlg, BM_SETIMAGE, 0, (LPARAM)hBitmap); // 버튼에 이미지 씌운다

break;

 

}

 

 

 

 

저 튤립과 국화랑 등대였나...가

버튼 이미지가 되었당 짜란~

'c/c++ > winapi' 카테고리의 다른 글

[API]OWNERDRAW로 버튼 이미지 바꾸기  (0) 2012.08.01
[API] 슬라이더에서 값 읽어오기  (0) 2012.07.23
Win32 API에 버튼 추가하기  (0) 2009.11.07
WM_TIMER  (0) 2009.05.26
ComboBox  (0) 2009.05.26