티스토리 뷰

Win32(API)

[win32 API] DC 그리기 작업, bitmap

열혈허슬러 상추님 2019. 7. 2. 10:05
190626(3일차) - DC받고 그리기 작업,  bitmap 
타이머 사용. 간격마다 반복적작업
전역변수 없애고 사용자 메세지 전송하고 프로시저에서 처리
메뉴추가 버튼클릭
비트맵

 
개발자에게 도구는 개발자 능력을 50%이상 향상시킨다.
 
"Code" Add : 코드 추가
"Refactoring" : 리팩토링 (결과가 바뀌면 안된다.)
두 개를 동시에 하진 않았다.
 
PtInRect()
 
숙제 : 첫번째 점에 근처에서 클릭하면 폴리건완성되게해라
 
WM_KEYDOWN : 그냥 키 메세지
WM_CHAR : 문자코드 메세지 (대/소문자 구분가능)
WM_KEYUP : 그냥 키 메세지
   
 
키스트로크
 
- 숙제.
랜덤값 사용해서 8방향 중 한 방향으로 튀긴다.
 

 
타이머
 
쓰레드
 
비동기IO
 
SendMessage()
 
WM_APP + a : 유저 메세지 영역
 
PostMessage(hwnd, WM_RANDPAINT, rtColor, (WPARAM)&rtRand); : 메세지 큐에 저장만하고 리턴(디스패치 보장X) (일반적으로 사용)
SendMessage(hwnd, WM_RANDPAINT, rtColor, (WPARAM)&rtRand); : 큐에 보관하는게 아니라. 프로시저를 직접호출하고 처리될 때까지 기다렸다가 리턴하면 반환된다. (디스패치 보장)
 

여기까지 한내용
DC받고 그리기
타이머 사용. 간격마다 반복적작업
전역변수 없애고 사용자 메세지 전송하고 프로시저에서 처리
 

 
리소스
자원
2가지 의미
  1. 유한하며
  2. 공유된다.
 
API에서는 
GUI에서..
  1. 그래픽으로 이루어진 UI : 그래픽 디자이너들이 담당 (markup 언어사용)(XML)(XAML)
  2. 프로그램코드(Logic, Code) : 개발자가 담당 (프로그래밍언어 사용)
 두개를 독립적으로 개발가능하고 협업을 통해 결합가능한 매커니즘이 필요하다.
 
윈폼 까지는 이런 개념이 없다.
 
.rc -> .res
 
리소스 추가하기
 
WM_COMMAND
  1. 메뉴
  2. 단축
  3. 자->부윈도우
    통지메세지 (알림)
 

 
비트맵
 
지금까지 DC를 이용하여 그렸는데 CLIENT의 화면 DC였다.
비트맵은 특수하게도 DC에 그려라할 수 없다.
용량이 크다보니까
메모리 상에만 존재하는 (메모리)DC를 만들어낸다.
(화면)DC 에서 그릴 때 그리기 영역을 화면에 두어서 화면에 출력된 것이다.
 
 
  1. 우선 bitmap을 3개 만들어보자.
  2. 메모리 DC를 만들자
    mdc = CreateCompatibleDC(hdc);
  3. 메모리 비트맵에 비트맵 장착
  4. 그리기내용을 화면에 전송
 

 
다이얼로그 ex.
 
모달 다이얼로그 : 다른 곳으로 포커스를 주지 않는 다이얼로그 (ex. 메세지 박스)
 
데스크톱 윈도우를 부모로 갖는다.
 
다이얼로그는 원래 메뉴에서 많이 띄운다.
우리는 클릭하면 뜨게 해보자.
Dialogbox()
EndDialog()
 
다이얼로그 프로시저가는 false를 반환한다. (모든작업을 여기서 처리)
WM_COMMAND 메세지를 발생시켜 부모에게 전달한다. (통지메세지)
 
댓글
댓글쓰기 폼
네이버 이웃추가
«   2021/01   »
          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            
글 보관함