|
간단한 컴포넌트 연습 중인데요...
일단 TGraphicControl을 상속 받아서 구현중입니다.
2가지 질문이 있습니다.
1. 귀퉁이에 라운드 처리를 하려고 하는데
FRound라는 속성을 만들고
OnPaint함수를 만들어
CreateRoundRectRgn 함수를 써서 Region을 만들고 그림을 그리는 데요.
문제는 옵젝트 인스펙터에서 FRound속성을 높이면 기존에 그려졌던 귀퉁이(R값이작은)가 지워지지 않습니다.
그래서 제가만든 FRound를 세팅하는 SetRound함수에다
Left++;Left--;
이렇게 넣어 놓으면 꽁수같지만 기존 귀퉁이가 지워지더군요.
즉 TGraphicControl::SetLeft혹은 그윗단에서는 어떤 동작을 해서 기존 그림을 클리어 하는 패턴이 있을것 같은데
요걸 알고 싶습니다.
즉 TGraphicControl에서 뒤에 있는 (소유하고있는)컨트롤을 먼저 그리고 내GraphicControl을 그리는 법이 궁금해요.
2. CreateRectRgn (Rect.Left,Rect.Top,Rect.Right,Rect.Bottom);
CreateRoundRectRgn(Rect.Left,Rect.Top,Rect.Right+1,Rect.Bottom+1,Round,Round);
위의 Region를 만드는 함수가 범위가 이상하게 똑같은 수치를 입력하면 CreateRoundRectRgn 이놈은 넓이랑
높이가 1픽셀씩 작게 잡히더군요.. 같은 함수군일텐데 원래 이런것인지 궁금 합니다.
저 1번의 답은 전에 게시판에서 본것 같은데 아무리 찾아봐도 찾아지지 않더군요 ㅜㅠ;
|