GDI 객체를 사용하는 과정
1. GDI 객체를 스택에 생성한다.
2. 생성된 GDI 객체를 디바이스 컨텍스트에 선택하고 이전에 선택되어 있던 같은 종류의 GDI 객체의 주소를 저장해둔다. (CDC::SelectObject())
3. GDI 함수를 이용하여 추력을 한다.
4. 이전의 GDI 객체를 디바이스 컨텍스트에 선택함으로써 기존에 선택된 GDI 객체를 선택 해제한다. (CDC::SelectObject())
5. GDI 객체가 범위를 벗어나면 소멸자가 자동으로 호출되면서 파괴된다.
펜
CPaintDC dc(this);
CPen pen(PS_SOLID, 1, RgB(255, 0, 0));
CPen *pOldPen = dc. SelectObject(&pen);
dc.Rectangle(100, 100, 200, 200)
dc.SelectObject(pOldPen);
브러시
솔리드 : CBrush(RGB(255,0,0));
해치 : CBrush(HS_DIACROSS, RGB(255,0,0));
패턴 : CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
폰트
2. 생성된 GDI 객체를 디바이스 컨텍스트에 선택하고 이전에 선택되어 있던 같은 종류의 GDI 객체의 주소를 저장해둔다. (CDC::SelectObject())
3. GDI 함수를 이용하여 추력을 한다.
4. 이전의 GDI 객체를 디바이스 컨텍스트에 선택함으로써 기존에 선택된 GDI 객체를 선택 해제한다. (CDC::SelectObject())
5. GDI 객체가 범위를 벗어나면 소멸자가 자동으로 호출되면서 파괴된다.
펜
CPaintDC dc(this);
CPen pen(PS_SOLID, 1, RgB(255, 0, 0));
CPen *pOldPen = dc. SelectObject(&pen);
dc.Rectangle(100, 100, 200, 200)
dc.SelectObject(pOldPen);
브러시
솔리드 : CBrush(RGB(255,0,0));
해치 : CBrush(HS_DIACROSS, RGB(255,0,0));
패턴 : CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
폰트
CPaintDC dc(this);
CFont font;
font.CreatePointFont(400, "Arial"); // 40 (=400/10) 폰트크기
dc.SelectObject(&font);
dc.TextOut(...);
내장객체
윈도우에 미리 정의된 객체.
CDC::SelectStockObject()함수를 사용.
dc.SelectStockObject(NULL_PEN);
dc.SelectStockObject(GRAY_BRUSH);
dc.Rectangle(...);
비트맵
비트맵 정보
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bmpinfo;
bmpinfo.GetBitmap(&bmpinfo);
# SelectObject(::GetStockObject(NULL_BRUSH)
비트맵 출력
1. CDC::CreateCompatibleDC() 함수를 이용하여 메모리 디바이스 컨텍스트를 만든다.
2. CDC::SelectObject() 함수를 이용하여 비트맵을 메모리 디바이스 컨텍스트에 선택한다.
3. CDC::BitBlt() 또는 CDC::StretchBlt() 함수를 이용하여 화면에 출력한다.
CFont font;
font.CreatePointFont(400, "Arial"); // 40 (=400/10) 폰트크기
dc.SelectObject(&font);
dc.TextOut(...);
내장객체
윈도우에 미리 정의된 객체.
CDC::SelectStockObject()함수를 사용.
dc.SelectStockObject(NULL_PEN);
dc.SelectStockObject(GRAY_BRUSH);
dc.Rectangle(...);
비트맵
비트맵 정보
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bmpinfo;
bmpinfo.GetBitmap(&bmpinfo);
# SelectObject(::GetStockObject(NULL_BRUSH)
비트맵 출력
1. CDC::CreateCompatibleDC() 함수를 이용하여 메모리 디바이스 컨텍스트를 만든다.
2. CDC::SelectObject() 함수를 이용하여 비트맵을 메모리 디바이스 컨텍스트에 선택한다.
3. CDC::BitBlt() 또는 CDC::StretchBlt() 함수를 이용하여 화면에 출력한다.
'Develop' 카테고리의 다른 글
네트워크 통신 (Client) (0) | 2009.10.23 |
---|---|
키보드 이벤트 (0) | 2009.10.23 |
그리기, 쓰기 등등 함수 (0) | 2009.10.21 |
Device Context (DC) (0) | 2009.10.21 |
MFC 전역함수 (0) | 2009.10.21 |