본문 바로가기

CListCtrl

ListCtrl 다중 선택 (Multi Selection)삭제 리스트 컨트롤에서 Multi Selection후 삭제를 할라보니 몇개가 남는다...뭥미;;찾아보니 뒤에서부터 지워라, 인덱스를 만들어 지워라 등등 많았는데...가장 깔끔하게 해결하는 방법을 Liverpool님께서 블로그에 올려두신 것을 보았으니..오호 통제라.. POSITION pos = m_LstSelectList.GetFirstSelectedItemPosition(); if(pos == NULL)return; //처음부터 선택된 값을 해제 한다. while(pos){ int index = m_LstSelectList.GetNextSelectedItem(pos); m_LstSelectList.DeleteItem(index); pos = m_LstSelectList.GetFirstSelectedItemP.. 더보기
리스트컨트롤 아이템 자동 선택 하기 리스트컨트롤을 사용하는데 자동으로 선택해와야 하는 경우가 생겨 찾아보니 데브피아에 저런 내용이 검색되었다 저도 같은 내용을 검색 하다가 다음과 같은 내용을 찾았습니다. 즐프.. ^^; ListCtrl::SetSelectionMark(int i) : i번째 item을 선택하는 것은 맞습니다. 단지 포커스까지 주지 않기때문에 표시(파란줄)가 되지 않을 뿐이지 내부적으로 현재 선택된 아이템은 i번째 아이템입니다. m_list1.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED) : 이것만 사용하시면 문제가 발생할 수 있습니다. 내부적으로 자동 선택된 아이템의 인덱스와 표시(파란줄)된 아이템의 인덱스가 달라질 수 있거든요.. 표시된 아이템을 삭제하려고 삭제 버튼을 눌렀는데 딴 아이.. 더보기
List Ctrl 아래로 정렬 시키기 리스트 뷰를 추가되는 데이터 때문에 항상 아래를 보이게 해야 하는 상황이 나왔다 데브피아를 찾아보니 EnsureVisible() 쓰라능~! 라고 나와있길레....... pListView->SetScrollPos(SB_VERT, pListView->GetListCtrl().GetItemCount()); pListView->GetListCtrl().EnsureVisible(pListView->GetListCtrl().GetItemCount() - 1, true); 이렇게 써봤더니.. 엄청난 깜박임이 발생하였다 |||orz 그래서 다시 찾은 방법이 pListView->SendMessage(WM_VSCROLL,SB_BOTTOM,NULL); 간단하게 해결 되는군;; 정보출처 : 현덕군 더보기
특정 컨트롤 시스템키 조합 이벤트 설정 BOOL CFileManagerDlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->hwnd == m_List_Explorer.m_hWnd ) { if(pMsg->message == WM_KEYDOWN) { if(::GetKeyState(VK_CONTROL) wParam == 'A') { for (int i=0; i 더보기