728x90
'나우캠퍼스X아워즈팜'유튜브의 'Win32 API 1강. 프로그래밍 기초 (1/3)'영상을 보고 정리한 내용입니다.
Win32API 프로그래밍이란 무엇인가?
- 윈도우 운영체제가 제공하는 함수를 이용한 C언어 기반의 프로그래밍
- Window OS. 즉 윈도우 운영체제(Window Operating System)로부터 오는 모든 정보를 메시지(양의 정수값)로 받아서 처리를 해준다.
- os와 밀접한 관련이 있으며 계속 관여한다.
- C언어 프로그래밍에서는 진입점이 main()함수이지만 Win32API 프로그래밍은 진입점이 WinMain()이다. 그리고 WinProc()함수에서 os로부터 발생하는 메시지를 받아오고, 처리해준다.
- WinMain() 함수 --> 응용프로그램 윈도우 생성
- WinProc() 함수 --> os로부터 메시지를 받아오고 처리
Win32API 프로그래밍에서 가장 중요한 것?
- **인스턴스와 핸들**
Win32API 프로그래밍을 할 때
- os의 자원을 쓰는 것이기 때문에 자원을 쓰고 반환해야함
C 프로그래밍에서의 키 입력
- while문을 돌며 만약 키 입력이 있다면( _kbhit()함수이용 ) int형이나 char형 변수에 키에서 입력된 값을 저장한다( _getch() 함수이용). 그리고 char형으로 출력한다. 이렇게 하면 while문을 계속 돌면서 키에서 입력되는 문자들을 콘솔창에 출력할 수 있다.
- conio.h 헤더의 함수들(콘솔의 입출력 함수를 제공하며 Visual Studio에서만 사용 가능)
- 함수명반환값
_kbhit() 키 입력이 있다면 true. 아니면 그 외의 값 _getch() 키에서 입력된 값을 아스키코드값으로 반환
- 함수명반환값
Win32API 프로그래밍에서의 키 입력(일부 설명)
WinProc()함수에서 메시지를 받아오고 처리를 한다고 했습니다. 프로그램이 실행되면 WinProc() 함수에서는 계속 메시지를 받아오고 처리를 하면서 반복합니다. 그래서 WinProc() 함수에서는 os로부터 들어오는 메시지를 이용하여 어떠한 입력을 받고 출력을 할 수 있습니다.
- WinProc() 함수에서 받는 메시지 중 'WM_CHAR'메시지는 키보드에서 입력을 했을 때 넘어오는 메시지이다.
- 키보드 입력을 하면 os가 WinProc()함수에 'WM_CHAR'메시지와 부가적인 다른 메시지를 넘겨준다.
- C언어에서는 printf()함수를 이용하여 콘솔창에 출력을 했지만 Win32API에서는 TextOut()함수를 사용하여 윈도우 창에 텍스트를 표시한다.
- 키 입력하면서 출력하기
- 문자열을 저장하는 버퍼를 만든다 -> 문자열 길이(idx) 저장 -> 버퍼의 idx번째 방에 os가 전달한 문자를 저장 -> 버퍼의 idx+1번째 방에 NULL 저장
- InvalidateRect()함수를 사용하여 WM_PAINT 메시지 발생시키기 ---> 화면을 지우고 다시 그려달라는 함수!(이 함수를 실행하면 또 관련된 메시지가 발생함--> 'WM_PAINT')
- TextOut() 함수를 이용하여 출력
Win32API 프로그램 영역

Win32프로그램을 실행시키면 이런 창이 뜨는데 가장 중요한 영역은 빨간 네모 영역인 '클라이언트 영역'입니다. 입력을 받고 화면에 그려주는 모든 부분이 저 클라이언트 영역에서 실행됩니다.
혹시 제가 잘못 이해한 부분이(잘못된 정보) 있다면 알려주시면 감사하겠습니다 :)
'무작정 따라해보기(정리, 문제풀기) > Win32API' 카테고리의 다른 글
6. Win32 API 프로그래밍 (0) | 2021.08.09 |
---|---|
5. Win32 API 프로그래밍 (0) | 2021.08.04 |
4. Win32 API 프로그래밍 (0) | 2021.08.01 |
3. Win32 API 프로그래밍 (0) | 2021.07.30 |
2. Win32 API 프로그래밍 (0) | 2021.07.29 |