2. 2
윈도우 프로그래밍
언어: C, C++, VB, C# …
Windows 환경 개발 라이브러리: Win32 API, MFC, …
통합개발환경: Visual Studio
보통의 경우: MFC 프레임워크 기반 윈도우 프로그래밍
3. C로 하는 Win32 API 기반
윈도우 프로그래밍 +/-
• C 언어만 알아도 배울 수 있다.
• 윈도우 프로그래밍 원리를 배울 수 있다.
– VB, C# 등 다른 언어로 하는 윈도우 프로그래밍을
쉽게 배울 수 있다.
• 코딩이 번거롭다.
• 객체지향언어와 궁합이 맞다.
– (C++) MFC 프레임워크 기반 윈도우 프로그래밍
보다 개발이 불편하다.
3
윈도우 프로그래밍이 편리하도록 C++로 만들어 놓은 틀
4. 4
MFC 프레임워크 기반
윈도우 프로그래밍 학습은 어렵다
• 윈도우 프로그래밍은 콘솔기반의 프로그래밍과 다르다.
• 익숙하지 않은 C++로는 윈도우 프로그래밍 개념 파악이
어렵다.
• MS의 호의로 만들어진 MFC 프레임워크도 알아야 한다.
윈도우프로그래밍
개념
C++
MFC
프레임워크 한 개씩은
넘겠는데
…
C
5. 5
• C 언어, Win32 API 기반 윈도우 프로그래밍을
기본으로 윈도우 프로그래밍 개념을 배운다.
• MFC 프레임워크 환경에서,
• -객체지향언어의 편리함(클래스 사용)을 누린다.
• -그리기, 대화상자, 동적라이브러리, 스레드
본 강의에서는
• C# 환경에서,
• -기본 윈도우 프로그래밍을 배운다.
• -동적라이브러리, NuGet 패키지
6. 6
• 대상: C 프로그래밍 언어
• 강의목표: 다양한 윈도우 프로그래밍 기법
소개가 아닌 윈도우 프로그래밍 개념 확립;
수강 후 인터넷에 널린 자료를 스스로 활용
할 수 있다
• 강의방법: 매우 간단한 문제를 단계적으로
제시하여 (쉽게) 설명
※ 참고교재: 아하 그렇구나, 윈도우프로그래밍입문, 고재필
공대 비전공자 2학년 수준 대상
9. 한번에 하나의 프로그램만
실행 (Single Tasking)
동시에 여러 개의 프로그램
수행 (Multi-Tasking)
프로그래밍 방식이 똑 같을까 ?
9
10. 자기 자신만 고려해서
코딩 한다
동시에 수행되고 있는 다른
프로그램을 신경 써서
코딩 한다.
말도 안돼 누가 수행될지도 모르는데
어떻게 고려해서 코딩 해
10
11. 다행히 그런 부분은 Windows (운영체제)가 알아서 처리해준다
대신 이러 이러한 방식으로 코딩 하라는 규칙이 있다
그 규칙에 따라서 코딩 하는 것을
사건 기반 프로그래밍
Event-Driven Programming
이벤트가 뭔지는 모르겠지만 중요한 말 같다
11
12. Event 처리 예
• 이벤트: [서식]-[글꼴]에서 마우스 클릭
• 이벤트 처리: 글꼴 선택 윈도우 출력
12
13. 이벤트 처리 과정
이벤트 발생 메시지 생성
메시지 인출메시지 처리
애플리케이션 큐
Application Queue
메시지
프로그램 끝 날 때 까지 반복
13