Win32 API with 나우캠퍼스

Win32 API 4강. 그래픽(2) 문자 출력과 색상 설정

코다람쥐 2022. 8. 13. 23:58

4. 문자 출력

TextOut()


▩ 함수의 원형

BOOL TextOutA(
  [in] HDC    hdc,
  [in] int    x,
  [in] int    y,
  [in] LPCSTR lpString,
  [in] int    c
);

hdc : 사용할 DC

x,y : 클라이언트 영역 기준의 출력좌표. 

lpString : 출력할 문자열

c : 출력할 문자열의 길이로 strlen같은 함수를 사용하면 됨.

 

사용예시.

   Hdc hdc
   char string[100];
   switch(message)
   {
---------- 생략 ---------
    case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
            sprintf_s(string, "Hello World");
            TextOut(hdc, 0, 0, string, strlen(string));
            EndPaint(hWnd, &ps);
        }
        break;
---------- 생략 ---------

 

5. 출력 색상 설정

색상 개요


삼원색

- red, green, blue의 약자 RGB

 

▩ 색상 범위

- DWORD를 사용. 0~255범위

255에 가까울 수록 원색에 가까워짐

 

색상 관련 매크로 함수


▩ RGB()

COLORREF RGB(BYTE byRed, BYTE byGreen, BYTE byBlue);

byRed : 빨간색 범위(0~255)

byGreen : 초록색 범위(0~255)

byBlue : 파란색 범위(0~255)

 

BYTE GetRValue(DWORD rgb); // 빨간색 값 얻기
BYTE GetGValue(DWORD rgb); // 초록색 값 얻기
BYTE GetBValue(DWORD rgb); // 파란색 값 얻기

 

참고, #define COLORREF DWORD 으로 정의되어있다.

 

6. 색상값을 활용한 점 출력과 색강값 구하기 

점 (dot) 출력 함수


▩ SetPixel()

색상값을 사용한 한 픽셀 출력

SetPixel(HDC hdc, int X, int Y, COLORREF crColor);

hdc : 사용할 DC

X : 출력할 x좌표

Y : 출력할 y좌표

crColor : 출력할 색상

 

▩ GetPixel()

화면 DC에 출력된 색상값을 구하는 함수

COLORREF GetPixel(HDC hdc, int nXPos, int nYpos);

hdc : 사용할 DC

nXPos : 색상을 얻을 x좌표

nYPos : 색상을 얻을 y좌표