2008년 09월 24일
[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)



