반응형
네이트온에 보면 저런 기능이 있다.
아티클들이 시간이 되면 스르륵 올라가서 다음 아티클이 나온다.
그 기능을 구현해보자.
- void CNateDlg::DrawUpping( CDC* pDC )
- {
- CDC memDC;
- CBitmap bitmap;
- CRect rect;
- memDC.CreateCompatibleDC( pDC );
- bitmap.CreateCompatibleBitmap( pDC,
- m_clsRect.Width() - m_clsScroll.Width(),
- m_clsRect.Height() * 2
- );
- memDC.SelectObject( &bitmap);
- memDC.PatBlt( 0,
- 0,
- m_clsRect.Width() - m_clsScroll.Width(),
- m_clsRect.Height() * 2,
- WHITENESS
- );
- rect = m_clsRect;
- // 위치를 변화 시킨다
- m_nPos -= UP_INCREMENT;
- m_clsRect.top = 0 + m_nPos;
- m_nText -= UP_INCREMENT;
- rect.top = m_clsOriginal.Height() + m_nText;
- memDC.DrawText(g_strOther[m_nArticle], m_clsRect, NULL );
- memDC.DrawText(g_strOther[m_nNextArticle], rect, NULL);
- // 화면에 복사해준다
- pDC->BitBlt( 0,
- 0,
- m_clsRect.Width() - m_clsScroll.Width(),
- m_clsRect.Height() * 2,
- &memDC,
- 0,
- 0,
- SRCCOPY
- );
- bitmap.DeleteObject();
- ReleaseDC( &memDC );
- if ( m_clsRect.top == (m_clsOriginal.Height() * -1) )
- {
- m_clsRect = m_clsOriginal;
- // 다음 글을 결정한다. m_nAricle과 m_nNextArticle
- CalcNextArticle();
- m_nPos = 0;
- m_nText = 0;
- m_bComplete = TRUE;
- }
- }
반응형
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
[Tip] 인텔리젼스 구현 (0) | 2011.04.04 |
---|---|
[Tip] 썸네일 리스트 미리보기 만들기 (0) | 2011.04.04 |
[Tab] 탭 컨트롤러 만들기 (0) | 2011.03.29 |
[Tip] 트레이 아이콘 조작 (0) | 2011.03.29 |
[Dialog] 전체화면 만들기 (0) | 2011.03.29 |
댓글