728x90
    반응형

    * list control 의 컨트롤 변수 : m_List

     

    리스트 초기화 (모든 항목 지우기)

    m_List.DeleteAllItems();
    while (m_List.DeleteColumn(0));

     

    리스트 열 너비 자동 조절

    for (int i = 0; i < m_List.GetHeaderCtrl()->GetItemCount(); ++i) 
    	m_List.SetColumnWidth(i, LVSCW_AUTOSIZE_USEHEADER);

     

    리스트 열 너비 수동 조절

    CRect rectParam;
    m_List.GetWindowRect(&rectParam);
    m_List.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
    m_List.InsertColumn(0, _T("col-0"), LVCFMT_LEFT, rectParam.Width()*0.2);
    m_List.InsertColumn(1, _T("col-1"), LVCFMT_CENTER, rectParam.Width()*0.3);
    m_List.InsertColumn(2, _T("col-2"), LVCFMT_CENTER, rectParam.Width()*0.5);
    //모든 열 너비의 합이 rectParam.Width() 가 되어야 한다.

     

    리스트 선택 및 활성화 (파란색으로 활성화 하기)

    int nRow = 0;		//0번째 행을 활성화 하기 
    m_List.SetItemState(-1, 0, LVIS_SELECTED | LVIS_FOCUSED);	//기존 선택된 항목 선택 취소 
    m_List.SetItemState(nRow, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
    m_List.EnsureVisible(nRow, FALSE);
    m_List.SetFocus();

     

    리스트 클릭해도 활성화 되지 않게 하기

    (1) List Control에 Event Handler 추가하기

        -> LVN_ITEMCHANGING

    (2) Added Event Handler Function에 아래 코드 삽입

    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
    
    if ((pNMLV->uChanged & LVIF_STATE) && (pNMLV->uNewState & LVNI_SELECTED))
    	*pResult = 1;
    else
    	*pResult = 0;

     

    리스트 대량 데이터 넣기

    (1) List Control 속성 Owner Data -> True

    (2) 

    728x90
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기