내 작품에서 개발중인 재료 시스템에 대해 드래그 앤 드롭 기능을 구현하려고합니다. 이 시스템의 일부는 사용자의 하드 드라이브에 저장된 자료의 그룹으로 나뉘어 저장소로 사용되는 '재료 라이브러리'를 포함합니다.MFC Painting Glitch를 수정하는 방법은 무엇입니까?
일부 UI 세련미의 일부로 '하이라이트'유형 기능을 구현하고 싶습니다. 드래그 앤 드롭 할 때 합법적으로 머티리얼을 드롭 할 수있는 창은 미묘하게 색상을 변경하여 사용자에게 올바른 동작임을 알려줍니다.
'기본 자료'(CStatic이있는 CWnd 만)는 회색 배경이 중간 크기이고 파란색 배경으로 펼쳐질 때 파란색 배경으로 바뀝니다. 모든 것이 잘 작동하고 OnDragEnter 및 OnDragExit 메시지가 강건 해 보이고 강조 상태를 나타내는 플래그를 설정합니다. 그런 다음 OnCtrlColor 내가 이렇게 :
if (!m_bHighlighted) {
pDC->FillSolidRect(0, 0, m_SizeX, kGroupHeaderHeight, kBackgroundColour);
}
else {
pDC->FillSolidRect(0, 0, m_SizeX, kGroupHeaderHeight, kHighlightedBackgroundColour);
}
을하지만, 당신은 스크린 샷에서 볼 수 있듯이, 장소에 원래 회색을 떠나 드래그 된 객체 아래의 그림 '결함'. 정말보기 흉하고 기본적으로 모든 효과를 망칩니다.
이 문제를 해결할 수있는 방법이 있습니까?