MFC 텍스트 관련함수 응용

MFC 텍스트 관련함수 응용


이번에는 MFC 텍스트 관련함수 응용에 대해서 한번 실습해보도록 하겠습니다.

먼저, MFC 프로젝트를 하나 생성해 줍니다. 대화상자 기반으로 생성을 해 주십시오.



이렇게 설정을 해주시고 마침 버튼을 클릭해 주시면 MFC 대화상자 기반의 프로젝트가 생성되게 됩니다. 그리고 나서 프로젝트 MainDlg.cpp 에 들어가셔서 OnPaint() 함수에 아래와 같은 코드들을 집어 넣어 주세요.

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

void CText1Dlg::OnPaint()

{

    if (IsIconic())

    {

        CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다.

 

        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

 

        // 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다.

        int cxIcon = GetSystemMetrics(SM_CXICON);

        int cyIcon = GetSystemMetrics(SM_CYICON);

        CRect rect;

        GetClientRect(&rect);

        int x = (rect.Width() - cxIcon + 1/ 2;

        int y = (rect.Height() - cyIcon + 1/ 2;

 

        // 아이콘을 그립니다.

        dc.DrawIcon(x, y, m_hIcon);

    }

    else

    {

        CDialogEx::OnPaint();

    }

 

    CDC *pDC = GetDC(); //DC 얻어옵니다.

 

    CRect rect;

    GetClientRect(&rect); 

 

    pDC->SetTextColor(RGB(00255));

    pDC->SetBkColor(RGB(0,255,0));

    pDC->DrawText(_T("Text Example"), -1&rect, DT_CENTER|DT_VCENTER|DT_SINGLELINE);

 

    pDC->TextOutA(rect.Width()/2, rect.Height()/4*3-30, _T("Text 디폴트 정렬방식으로 출력"));

 

    pDC->SetBkMode(TRANSPARENT);

    pDC->SetTextAlign(TA_RIGHT);

    pDC->TextOutA(rect.Width()/2, rect.Height()/4*3, _T("Text 오른쪽 정렬방식으로 출력"));

 

    pDC->SetBkMode(TRANSPARENT);

    pDC->SetTextAlign(TA_CENTER);

    pDC->TextOutA(rect.Width()/2, rect.Height()/4*3+30, _T("Text 가운데 정렬방식으로 출력"));

}

Colored by Color Scripter

cs

간단히 코드 설명을 하자면 우선 CDC 객체를 선언하여 GetDC()함수를 이용하여 DC객체를 가지고 옵니다. 그리고 나서 SetTextColor, SetBKColor, DrawText 함수를 이용하여 텍스트의 색상, 배경 색상, 그리고 출력할 내용들을 입력하여 주시면 됩니다. 




그리고 프로그램을 실행하게 되면 아래와 같은 결과화면이 나오게 됩니다. 이로써 간단히 MFC에서 텍스트를 정렬 및 출력하는 부분을 알아보았습니다.



728x90

이 글을 공유하기

댓글

Designed by JB FACTORY