[질문] vc++ 에서 리스트 컨트롤에 부분만 UpdateData() 할 수 없을까요?
든해솔
안녕하세요
이베카입니다.요즘은 vc++으로 그적그적 해보고 있는 중인데요
하다가 도저히 안되서 질문드립니다.리스트 컨트롤에 cstring 변수를 insert 하는 함수를 만들었는데요
특정 색상을 지정해서 집어넣고 싶습니다.void CServerManagerView::ConnectClient(CString str, int COLOR)
{
client_cnt++;
switch(COLOR) {
case BLACK:
m_ctlCStatus.SetTextColor(RGB(0,0,0));
break;
case BLUE:
m_ctlCStatus.SetTextColor(RGB(0,0,255));
break;
case RED:
m_ctlCStatus.SetTextColor(RGB(255,0,0));
break;
case GREEN:
m_ctlCStatus.SetTextColor(RGB(0,204,0));
break;
default:
m_ctlCStatus.SetTextColor(RGB(0,0,0));
break;
}
m_ctlCStatus.InsertItem(m_ctlCStatus.GetItemCount(), _T(str));
UpdateData(FALSE);
}
CListCtrl::SetTextColor() 을 사용해서 updatedata를 했는데요
제일 마지막에 함수 호출할때 인자로 넣어준 색으로 그려져요.
SetTextColor()가 리스트 컨트롤 전체의 색을 지정하는 함수인데다가
UpdateData(false)를 해버리니까 전체가 다시 출력되어서 그런거 같은데요.바로 insert 한 row 만 업데이트 할 수 있는 방법은 없나요?
꼭 전체를 다 해줘야하나요?전체를 다 하려면
엄청+_+ 복잡한 과정을 치뤄야 하던데 orz으윽
감기걸려서 안그래도 정신없는데
vc++이 더 정신없게 해요 ㅠㅠㅠ도와주세요 ㅠ_ㅜ
-
삐용삐용 2025-06-12
고맙습니다 ㅠ_ㅜ 감기조심하세요 ㅠㅠㅠ
-
겨울 2025-06-12
CWnd::InvalidateRect 을 이용해서, 그 영역만 업데이트 요청을 할수가 있습니다. 자세한건 저도 기억이 잘않나네요. 전, 여기까지.. 다른분이 도와주시길..