다이얼로그에 라인, 사각형 등의 UI 그리기
C++ 에서 UI 작업하는 함수이다. 라인을 그리거나 도형을 그리는 함수이다.
펜 객체를 써서 라인을 그리고 도형을 그리는 것이다.
주의해야 할것은 .. 펜이라는 객체는 이전에 쓰던 펜을 저장해두고 새로 쓸펜을 지정해준다. 그리고 다시 이전 펜으로 복원해주고
새로 쓴펜을 삭제해주면 된다.
1 //////////////////////////////////////////////////////////////////////////
2 /**
3 @brief : OnUIDraw
4
5 @date : 2010-05-20 오전 9:25:16
6 @author: Kwangho Park
7 @remark: UI 그려주기.
8 수정내역
9 -------------------------------------------------------------------------
10 2010-05-20
11 */
12 void CJohapModDialog::OnUIDraw(CDCHandle cDC)
13 {
14 // CRect 클래스의 윈도우 RECT 구조체 선언.
15 CRect rc, rc2;
16
17 // 윈도우 영역 지정.
18 rc.SetRect(18, 72, 401, 164);
19
20 // 펜 객체 선언.
21 CPen obPen;
22 obPen.CreatePen(PS_SOLID, 1, COLOR_EC); // 펜 속성지정으로 선언. (SOLID, 굵기, 색상 ..)
23 HPEN OldPen = cDC.SelectPen(obPen.m_hPen); // 펜 선택. (이전펜 속성 저장후 돌려줌)
24
25 // 사각형 그리기.
26 cDC.FillSolidRect(&rc, COLOR_WI); // 윈도우 지정영역에 색상으로 그림.
27 cDC.FillSolidRect(CRect(18,72,83,164), COLOR_HC); // 동일.
28 cDC.FillSolidRect(CRect(177,72,237,164), COLOR_HC); // 동일.
29 cDC.Draw3dRect(&rc, COLOR_EC, COLOR_EC); // 사격형 그리기.
30
31 // 라인그리기.
32 cDC.MoveTo(320, 72);
33 cDC.LineTo(320, 102);
34
35 cDC.MoveTo(18, 102);
36 cDC.LineTo(401, 102);
37
38 cDC.MoveTo(18, 134);
39 cDC.LineTo(401, 134);
40
41 cDC.MoveTo(83, 72);
42 cDC.LineTo(83, 164);
43
44 cDC.MoveTo(177, 72);
45 cDC.LineTo(177, 164);
46
47 cDC.MoveTo(237, 72);
48 cDC.LineTo(237, 164);
49
50 // 펜 객체 삭제.
51 cDC.SelectPen(OldPen); // 이전 펜으로 지정. (복원)
52 obPen.DeleteObject(); // 펜 객체 삭제.
53 }