매주 설계 계획이나 결과에 대해 발표.

기말고사 때 발표.

 

중간고사까지만 함께 수업. 이후에는 우리가 주도.

 

주제?

  • 이미 다 나와있는 거지만 난이도가 있어야 함.
  • 여러분이 응용할 수 있는 것

 

난 빈말하는 사람 아녜요.

 

저번주에도 나왔는데 OnDraw를 사용해서 화면에 뭔가를 뿌려준다고 이야기했습니다.

밑에는 기본적으로

Device Context? => DC. 여기서 원하는 속성 정의해 준 게 위 부분.

GetDC를 포인터로 지정해 주고 밑에 속성을 정의해 주는데,

TextOutW의 100, 50는 뭘까요? 좌표. 근데 내가 실행시킨 걸 보면 왼쪽 제일 위에서 시작하지만 이미지 같은 경우 왼쪽 제일 밑에서 시작하는 경우도 있다고 알고 계세요.

항상 메모리 해제해 줘야 합니다. ReleaseDC를 해서… 기본적인 규칙입니다.

 

CClientDC dc(this);

dc.TextOutW(100, 100, _T("MFC Application"));

를 보면 위의 것과 조금 다른데 위의 것을 조금 편하게 해주기 위한 파생클래스로 CClientDC라는 게 있습니다. CClientDC는 생성자, DC에서 가지고 온 다음에는 자동적으로 반납합니다. 메모리 해제를 바로 해 줍니다. TextOutW는 화면에 텍스트 출력해주는 함수입니다.

 

또 DrawText() 함수로 텍스트 출력을 할 수 있어요. 보통 문자의 String이라고 하잖아요?

Int DrawText(Cstring str, LPRECT lpRect, UNIT nFormat);

 

Child Window 만들듯이 |(or)로 추가할 수 있다.

  • SetTextColor() // 색상 변경
  • SetBkColor() // 텍스트 배경색
  • SetBkMode // 배경 모드 지정
    • QPAQUE(불투명)
    • TRANSPARENT(투명)

3개가 다 쓰이면 화면의 정 중앙에 들어가요. 요 3개가.

 

1.2 도형 그리기

  • 직선 그리기 함수
    • 항상 시작점과 끝점 두개가 들어가야…
  • 좌표를 나타내는 포인트에 대한 구조체가 사용됨.

CRect: 사각형을 나타내는 구조체.

 

pDC->MoveTo(100, 100);

pDC->LineTo(200,200);

 

위와 같이 하면 대각선이 그어지겠죠?

pDC->Rectangle(300, 100, 400, 200);

직사각형. (시작점의 x축, 시작점의 y축, 끝점의 x축, 끝점의 y축)

 

pDC->Ellipse(500, 100, 600, 200);

Ellipse : 타원(원)을 그리는 부분이에요. 사각형과 비슷한 방법으로 선언.

 

On이 붙는 함수는 메시지 핸들러라고 부릅니다.

메시지 핸들러: 앞에다 무언가 다른것을 구동시키면서 동작시키는 함수

 

위 소스를 보면 클래스를 통해(아래쪽 도형들) 만들 수도 있다는 것을 볼 수 있다.

 

3조.

 

사각형은 계속 반복됩니다.

그리기가 완료되어 사용이 끝난 브러쉬는 펜과 같이 원상 복귀.

 

내가 내 주석을 달아야 내 것으로 만들 수 있다.

사각형 관련해서 실습!

'이론 수업 > 윈도우 프로그래밍 설계' 카테고리의 다른 글

3월 11일: Visual C++  (0) 2020.09.16
,