IT하는 참새
Win32 api - DC 본문
윈도우즈는 세 가지 동적 라이브러리로 구성된다
kernel.dll : 메모리관리와 프로그램 실행함
user.dll : UI와 윈도우관리함
gdi.dll : 화면출력에 관한 모든것들을 관리함
그럼 화면에 글씨를쓰든, 선을긋든 등등 화면에 보여지는 모든작업은 gdi.dll을 활용해야하는가?
YES!!
YES!!
YES!!
이어서 DC라는 개념이 있음
DC(Device Context): gdi.dll 모듈의 데이터 구조체이다 (실제 구조체명은 HDC)
프로그래밍을 할때에는 DC를 활용하면 되는것!
단순한 DC의 활용법 (글자를 나타내기)
이 코드는 좌클릭시 프로그램에 Hello World글자가 나온다
1. HDC 변수 선언
2. GetDC함수로 DC얻어옴
3. TextOut(화면에 텍스트출력)함수에 DC를 비롯한 인수를 주어 실행
4. 더이상 출력할 일 없으면 ReleaseDC함수로 DC해제
이렇게 출력하는 것의 문제점
- 화면이 다른윈도우에 가려지거나 잠깐 창 내렸다가 올리면 글자가 사라짐
그렇다면?
=> PAINT라는 개념이 존재함
윈도우 프로그램은 자신이 지워진 부분을 뚝-딱 혼자 복구하는 기능은 없다
하지만 이 부분이 지워졌다면 빠르게 다시 복구해줘!! 라고 명령은 내릴 수 있다
이것이 PAINT의 개념
사용법
- 윈도우 메시지로 처리한다 (WM_PAINT)
1. HDC 변수 선언
2. PAINTSTRUCT 변수 선언
3. BeginPaint함수로 DC를 얻어옴
4. TextOut(화면에 텍스트출력)함수에 DC를 비롯한 인수를 주어 실행
5. 더이상 출력할 일 없으면 EndPaint함수로 DC해제
윈도우 프로그램은 자신이 지워진 부분을 스스로 복구하는 능력이 없다
그러므로 복구희망하는 코드라면 이렇게 PAINT를 이용하는 것이 맞다
'프로그래밍 > Win32 API' 카테고리의 다른 글
Win32 api - MessageBox (0) | 2018.07.15 |
---|---|
Win32 api - Process (0) | 2018.07.15 |
Win32 API - Template (0) | 2017.12.03 |