본문 바로가기

CDC

Ellipse 그리기. 랜덤 함수를 써서 윈도우에 다양한 타원.. 간단하게 CDC::Ellipse() 함수를 이용해서 윈도우에 랜덤한 타원을 출력시키는 프로그램. CBrush와 CPen으로 브러시와 펜을 생성및 초기화 하고 SelectObject 함수로 DC에 선택한다. #include class CEllipseApp: public CWinApp { public: virtual BOOL InitInstance(); }; CEllipseApp theApp; class CMainWnd : public CFrameWnd { public: CMainWnd(); ~CMainWnd(); afx_msg void OnTimer(UINT nIDEvent); DECLARE_MESSAGE_MAP(); }; void CMainWnd::OnTimer(UINT nIDEVENT) { CClien.. 더보기
윈도우즈 그래픽 출력함수 윈도우 그래픽 출력함수들은 모두 CDC멤버함수로 되어있다. GDI객체를 프로그래머가 만들어서 사용할수도 있다. 일반적으로 내부에 있는 GDI객체를 Stock object라 한다. 이는 CDC::SelectStockObject함수를 이용해서 사용할 수 있다. 이것도 마찬가지로 이전의 DC에 설정된 GDI오브젝트를 리턴하게 된다. 작업을 끝낸후 다시 복구해야 한다. 픽셀 관련함수 CDC::SetPixel() CDC::GetPixel() 선그리기 함수 CDC::MoveTo() CDC::LineTo() CDC::PolyLine() CDC::Arc() CDC::PolyBezire() 타원과 다각형 그리기 함수 CDC::Rectangle() CDC::RoundRect() CDC::Ellipse() CDC::Chor.. 더보기
윈도우 그래픽 프로그래밍 OnDraw (환경 : VS 2005에서 실행하였다.) 간단하게 프로젝트에서 Line 이란 프로젝트를 생성한다. single document로 생성. 그중 view 클래스에서 OnDraw함수를 찾는다. CLineView::OnDraw() . 이넘이 실질적으로 윈도우에 그림을 뿌려준다... code ---------------------------------------------------------------- void CLineView::OnDraw(CDC* pDC) { CLineDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다. CPen penRed(PS_SOLID,0,RGB(2.. 더보기
Visual C++, DC에 관해서~~ CDC - CDC는 Device Context 를 캡슐화 해놓을 것. 윈도우내에서 그래픽에 관련된것을 처리할 수 있다. 대부분의 CDC 멤버 함수는 윈도우 SDK에서 제공되는 API 를 정리 한것이라 보면된다. CPaintDC - CPaintDC WM_PAINT 메세지 응답을 위한 클래스 자기 자신의 생성자,소멸자를 BeginPaint,EndPaint에 포함해서 굳이 BeginPaint,EndPaint를 호출할 필요가 없다. 결국 번거로운 코딩(DC미반납등의)을 줄일수 있다. CClientDC - 주어진 윈도우 클라이언트 영역에 대응하는 DC생성에 이용한다. 이 클래스도 생성자와 소멸자를 GetDC,ReleaseDC에 포함한다. CClientDC객체는 ONPaint나 OnDraw함수 밖에서 DC에 출력하.. 더보기