Draw3dRect의 정체

@codemaru · March 10, 2006 · 1 min read

void CDC::FillSolidRect(int x, int y, int cx, int cy, COLORREF clr)  
{  
    ASSERT\_VALID(this);  
    ASSERT(m\_hDC != NULL);  
 
    ::SetBkColor(m\_hDC, clr);  
    CRect rect(x, y, x + cx, y + cy);  
    ::ExtTextOut(m\_hDC, 0, 0, ETO\_OPAQUE, &rect, NULL, 0, NULL);  
}  
 
void   
CDC::Draw3dRect  
(LPCRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomRight)  
{  
    Draw3dRect(lpRect->left, lpRect->top, lpRect->right - lpRect->left,  
            lpRect->bottom - lpRect->top, clrTopLeft, clrBottomRight);  
}  
 
void   
CDC::Draw3dRect  
(int x,int y, int cx, int cy, COLORREF clrTopLeft, COLORREF clrBottomRight)  
{  
    FillSolidRect(x, y, cx - 1, 1, clrTopLeft);  
    FillSolidRect(x, y, 1, cy - 1, clrTopLeft);  
    FillSolidRect(x + cx, y, -1, cy, clrBottomRight);  
    FillSolidRect(x, y + cy, cx, -1, clrBottomRight);  
}
@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중