본문 바로가기
C & C++/MFC 컨트롤

Exteded Combo 를 이용한 콤보박스에 이미지 넣기 - 콤보 상자

by izen8 2011. 12. 14.
반응형

Extended_combo.zip





사용하고자 하는 헤더파일에 아래와 같이 추가합니다.
 
private:
      COMBOBOXEXITEM m_cmb_item;
      CImageList m_image_list;
 
 
그리고 OnInitDialog()부분에는 아래와 같이 추가합니다.
 
CString str;
 
m_image_list.Create(IDB_BITMAP, 16, 16, RGB(255, 255, 255));
m_cmb_ex.SetImageList(&m_image_list);
 
// 확장 콤보박스 항목에서 사용하는 이미지 형식은 COMBOBOXEXITEM 구조체를 사용한다.
for(int i = 0; i < 5; i++){
  
     // COMBOBOXEXITEM 구조체의 mask멤버를 사용한다.
     m_cmb_item.mask = CBEIF_IMAGE | CBEIF_SELECTEDIMAGE | CBEIF_TEXT;
 
     // 아이템의 인덱스이다.
     m_cmb_item.iItem = i;
     str.Format("테스트 아이템 %d", i+1);
     m_cmb_item.pszText = (LPTSTR)(const char *)str;
 
     // 입력될 스트링의 길이를 구한다.
     m_cmb_item.cchTextMax = str.GetLength();
 
     // 각 값은 컨트롤의 연결된 이미지 목록에 있는 이미지의 인덱스이다.
     // 기본적으로 이러한 멤버는 0으로 설정되어 있어 컨트롤이 항목에 대해
     // 아무런 이미지도 표시하지 않게 한다.
     m_cmb_item.iImage = 0;
     m_cmb_item.iSelectedImage = 0;
 
     // 확장 콤보 상자 항목에 삽입한다.
     m_cmb_ex.InsertItem(&m_cmb_item);
 }
 SetIcon(m_hIcon, TRUE);
 SetIcon(m_hIcon, FALSE);
반응형

댓글