CListCtrl 데이터 변경 및 데이터 삽입 반 짝 임 방지 방법
법 1:LVS 직접 설정EX_DOUBLEBUFFER 확장 속성 입 니 다.
법 2:더 블 버퍼 를 사용 합 니 다.
클래스 CMyListCtrl 을 사용자 정의 하여 CListCtrl 을 계승 하고 OnPaint 와 OnEraseBkgd 를 다시 쓰 는 방법
void CMyListCtrl::OnPaint()
{
	//              
	CPaintDC dc(this); // device context for painting  
	CRect rect;
	CRect headerRect;
	CDC MenDC;      //  DC     
	CBitmap MemMap;
	GetClientRect(&rect);
	//GetDlgItem(0)->GetWindowRect(&headerRect);
	this->GetHeaderCtrl()->GetWindowRect(&headerRect);
	MenDC.CreateCompatibleDC(&dc);
	MemMap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height());
	MenDC.SelectObject(&MemMap);
	MenDC.FillSolidRect(&rect, RGB(255, 255, 255));
	//     OnPaint(),       DC       
	DefWindowProc(WM_PAINT, (WPARAM)MenDC.m_hDC, (LPARAM)0);
	//         
	dc.BitBlt(0,
		headerRect.Height(),
		rect.Width(),
		rect.Height(),
		&MenDC,
		0,
		headerRect.Height(),
		SRCCOPY);
	MenDC.DeleteDC();
	MemMap.DeleteObject();
}
BOOL CMyListCtrl::OnEraseBkgnd(CDC* pDC)
{
	// TODO:               /      
	return FALSE;
}  (2)CListCtrl 데이터 삽입 으로 깜빡 임 방지:
(1)의 기초 위 에 아래 코드 를 덧붙이다
CString str;
	str.Format(L"%d", nItem);
//	plist->LockWindowUpdate();
	//	plist->SetRedraw(FALSE);
	plist->InsertItem(nItem, str);
	plist->SetItemText(nItem, 0, str);
	plist->SetItemText(nItem, 1, L"    ");
//	plist->UnlockWindowUpdate();
//	plist->SetRedraw(TRUE);
	plist->Invalidate(); //   ,    ,     
	plist->SetScrollPos(SB_VERT, nItem, TRUE); //      ,          
	plist->EnsureVisible(nItem, FALSE);
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MYSQL 대량 삽입 데이터 구현 코드 1/3페이지@echo off cls set CLASSPATH=..\api\jogre.jar set CLASSPATH=%CLASSPATH%;. set CLASSPATH=%CLASSPATH%;classes set CLASSPATH...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.