[C++] CListCtrl 제어

자주쓰는 Control이고 여기서 자주쓰는 기능을 정리합니다.
( 항상 사용하면서 예전에 써왔던 기능이지만 다시 검색해서 찾아보기를 반복.. ㅠ_ㅠ 치매다.. )


1. Item Select

    m_listCtrl.SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);

2. Item Unselect 

    m_listCtrl.SetItemState(index, 0, LVIS_SELECTED);

3. LVN_INSERTITEM 이벤트

    InsertItem()함수로 Item추가시 발생한다. But, SetItemText()로 다른 Column값을 셋팅했을때 발생안한다.
    따라서 각 컬럼의 내용이 모두 추가되었을때 어떠한 동작을 하려고 할때는 이벤트를 이용할수 없었다.
    --> 그래서 아이템 추가시 SendMessage를 보내 다음 동작을 완료하였다..

3. CheckBox

    리스트 컨트롤의 속성을 다음과 같이 주면 Checkbox가 왼쪽에 생긴다.
    SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);

    Item 클릭시 CheckBox가 클릭된건지 확인하는 방법
    

        ON_NOTIFY(NM_CLICK, IDC_SHELLLIST, OnNMClickShelllist)
    
        void CxListView::OnNMClickShelllist(NMHDR *pNMHDR, LRESULT *pResult)
        {    
                int rc = 0;
                 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

                 // Checkbox HitTest
                 LVHITTESTINFO oInfo ;
                 oInfo.pt = pNMListView->ptAction ;
                 m_listCtl.HitTest(&oInfo) ;

                /// Check Box Icon Click
                 if( oInfo.flags == LVHT_ONITEMSTATEICON ) 
                {
                     rc = 1; // 무시하고 싶으면 셋팅                      
                }

                pResult = rc;
        }

by 이카로스 | 2008/09/24 17:37 | C++/MFC | 트랙백 | 덧글(0)

.

<< 이전 페이지     다음 페이지 >>