본문 바로가기
개발언어/C++

다이얼로그에 라인, 사각형 등의 UI 그리기

by 엔돌슨 2010. 5. 20.
반응형

다이얼로그에 라인, 사각형 등의 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 }