Mafa Dev

[MFC] 버튼,화면배경에 Bitmap 이미지 씌우기 본문

개발/MFC 프로그래밍

[MFC] 버튼,화면배경에 Bitmap 이미지 씌우기

마파_ 2013. 1. 10. 12:56

1. 버튼 컨트롤에 Bitmap 이미지 씌우는 순서

 

      1-1.  비주얼스튜디오에서 다이얼로그 형식의 프로젝트를 생성한 뒤, 버튼 컨트롤을 만든다.

 

      1-2.  윈도우 탐색기에서 사용하고자 하는 bmp 이미지 파일을 프로젝트의 res 폴더에 복사한다.(버튼 하나 당 4개 이미지 파일이 필요함)

 

      1-3.  프로젝트 리소스 뷰의 rc 폴더에서 마우스 오른쪽 버튼을 눌러 "리소스 추가" 메뉴 선택 -> "Bitmap" 선택 & "가져오기" 선택 ->

               이미지 4개 선택 -> rc 폴더아래에 BITMAP 폴더가 생성되고 그안에 가져온 이미지가 나타나면 각 이미지의 속성화면에서 ID를

               알아보기 쉬운 이름으로 수정한다.

 

      1-4.  버튼 변수이름을 설정하되, 변수형식 지정란에 CBitmapButton 이라고 클래스 이름을 입력한 뒤 임의의 변수이름을 지정한다.

 

      1-5.  다이얼로그.cpp파일안에 DDX_control이 제대로 되어있나 확인한 뒤, 다이얼로그 화면이 초기화 될때 비트맵 버튼도 함께

             만들어져야 하므로 CBitmapDlg::OnInitDialog() 함수안에 아래 코드를 입력한다.

             ( m_btnBmp는 버튼컨트롤 변수명이고 IDB_BITMAP_1, IDB_BITMAP_2, IDB_BITMAP_3, IDB_BITMAP_4은 각 이미지 ID 이다. )

              //버튼에 이미지를 입힘(아래 매개변수 설명 - 1.기본이미지  2.눌렀을때  3.포커스ON   4.비활성화 상태)
                 m_btnBmp.LoadBitmaps(IDB_BITMAP_1, IDB_BITMAP_2, IDB_BITMAP_3, IDB_BITMAP_4);
                 m_btnBmp.SizeToContent();    // 버튼에 이미지를 버튼크기에 맞게 자동조절

 

       1-6.  프로젝트를 컴파일&실행시키면 rc파일이 외부에서 수정되었으니 다시 로드하겠냐는 메시지박스가 나타나면 "예"를 선택한다.

 

       1-7.  아직 이미지가 버튼에 적용되지 않았을 것이다. 다이얼로그 화면에서 버튼컨트롤을 선택한 뒤, 속성창 항목에서

               "Owner Draw" 항목을 true로 수정한 뒤 다시 컴파일하여 실행하면 이미지가 화면에 적용된다.

 

 

2. 화면배경에 Bitmap 이미지 씌우는 순서

      

        2-1.  위 버튼 이미지 씌우기의 처음부터 1-3번까지 동일

      

        2-2.  다이얼로그 화면에서 도구상자에 "Picture Control"항목을 선택후, 다이얼로그 화면의 적당한 영역에 위치시킨다.

                (영역크기는 나중에 자동으로 맞춰지므로 신경끌 것)

    

        2-3.  설정한 Picture Control의 속성창에서 Type 항목을 "Bitmap"으로 설정한 뒤, Picture Control의 변수를 추가한다.(m_imgBg)

 

        2-4.  Dlg.cpp 소스 안의 OnInitDlg() 함수안에 아래 코드 삽입.

 

                // 배경화면 이미지 연결코드
                    HBITMAP hBit=LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_BG));
                    m_imgBg.SetBitmap(hBit);
                    CRect rt;
                    GetClientRect(&rt);
                    m_imgBg.SetWindowPos(NULL,0,0,rt.Width(), rt.Height(),SWP_SHOWWINDOW);

 

         2-5. 컴파일 후, 실행하면 배경화면에 이미지가 적용되어 나온다.

 

 

 

 


 

'개발 > MFC 프로그래밍' 카테고리의 다른 글

[MFC] 쓰레드 사용법  (0) 2013.01.08
쓰레드 사용법  (0) 2013.01.04
구글맵 api 위도,경도, 주소 표시하기  (0) 2013.01.03
채팅창처럼 한줄 추가 ( 433p )  (0) 2012.12.27