duilib 복구 용기 컨트롤 rightbordersize 와 bottombordersize 속성 이 잘못된 bug 를 표시 합 니 다.
DuiLib 의 용기 컨트롤 은 bordersize 로 테두리 폭 을 통일 적 으로 지정 할 수 있 으 며, rightbordersize, bottombordersize 등 속성 으로 한 테두리 의 폭 을 따로 지정 할 수 있 습 니 다.그러나 rightbordersize, bottombordersize 속성 표시 에 문제 가 있 습 니 다. 경계선 을 1 로 설정 할 때 표시 할 수 없고 2 로 설정 할 때 만 표시 합 니 다.
원본 코드 를 추적 한 결과 CContainerUI 의 DoPaint 함수 에 문제 가 있 음 을 알 수 있 습 니 다.
void CContainerUI::DoPaint(HDC hDC, const RECT& rcPaint)
{
RECT rcTemp = { 0 };
if( !::IntersectRect(&rcTemp, &rcPaint, &m_rcItem) ) return;
CRenderClip clip;
CRenderClip::GenerateClip(hDC, rcTemp, clip);
CControlUI::DoPaint(hDC, rcPaint);
//
}
코드 에 있 는 rcTemp 은 CContainerUI 가 그 리 는 범위 입 니 다. 테 두 리 는 최종 적 으로 CControlUI: DoPaint 라 는 코드 로 그 려 집 니 다. 그 전에 커팅 영역의 함 수 를 호출 하여 DC 에 커팅 영역 을 설 치 했 고 GenerateClip 의 내부 에 CreateRectRgnIndirect 함 수 를 호출 했 습 니 다. CreateRectRgnIndirect 함수 가 커팅 영역 을 설정 할 때 오른쪽 과 아래쪽 의 픽 셀 을 무시 합 니 다.그래서 이 문제 가 생 겼 습 니 다.
복구 코드 는 간단 합 니 다. rcTemp 의 오른쪽 과 아래쪽 에 픽 셀 을 미리 추가 합 니 다.
void CContainerUI::DoPaint(HDC hDC, const RECT& rcPaint)
{
RECT rcTemp = { 0 };
if( !::IntersectRect(&rcTemp, &rcPaint, &m_rcItem) ) return;
++rcTemp.right;
++rcTemp.bottom;
CRenderClip clip;
CRenderClip::GenerateClip(hDC, rcTemp, clip);
CControlUI::DoPaint(hDC, rcPaint);
//
}
요약:
bug 의 복구 코드 는 이미 나의 Duilib 라 이브 러 리 에 제출 되 었 습 니 다.
나의 Duilib 라 이브 러 리 코드 다운로드 주소: 클릭 하여 링크 열기
Redrain 2015.5.7
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.