728x90
반응형
■ WIN32API
■ 문자열 출력
"문자열"앞에 왜 L을 붙이느냐
당연히 영어를 사용할때는 문제가 없었는데
다른나라 언어는 안되는 문제가잇어서 유니코드를 개발했다
유니코드는 2바이트를 한개의 문자로 인식한다.
최신언어일수록 유니코드로 처리한다
WIN32API는 16비트의 산물이기 때문에 시스템 자체가 char에 맞춰져있다.
그래서 W(ide)char를 만들었는데 문제는 따옴표하면 아스키코드의 것인지 유니코드의 것인지 컴파일러가
단정지을 수 없다.
일단 "" 하면 char로 인지하는데, WIN32API는 대부분 Wchar에 맞춰져있다
그러므로 앞에 L을 붙여서 Wchar에 맞춰주는 것이다.
예를들어 First
Fi가 한문자
rs가 한문자로 나온 것이다.
t 가 한문자
다른방법도있는데 TEXT("First") - 권장(제일 호환이 잘됨)
MFC에선 _T("First") 이런 형식을 사용한다.
멀티코드 영어 1Byte, 한글 2Byte 로 인식한다.
유니코드 - 2Byte
■ 커서모양 변경
Vertical, Horizon
■ Device Context
어셈블리할때 Context 구조체에 프로세스 상태를 저장했었다.
장치의 상태를 저장할 때 사용한다.
그래픽상태를 읽어오는 함수가있고, 읽어온 걸 폐기하는 함수가 있다.
그래픽카드마다 게임을 만들 수 없다.
이걸 극복하려고나온게 오락을 자바로 짜는 것이다. 자바가상머신이 화면을 조절해준다.
디지털은 확대하면 계단이 생긴다.
아날로그는 확대하면 색깔이 연해지고
자바는
모든기기에 돌아간다는게 장점이고
모든기기에 최적화못하는게 단점이다.
다른정보를 저장해놓고 쓰면 된다.
■ 문자열 출력
윈도우한테 기본적으로 그리기 정보를 가져온다
가져온것에서 우리가원하는 저정보만 가져온다. 그래서 그러보면 기존에값이 들어가잇으므로
기본적으로 그려진다.
화면에 그림을 그리는것도 윈도우입장에서는 힘들다.
창두개를 띄웠을때 겹쳣을때 앞창에 가려진 뒷창내용은 화면에 표시할 필요가 없다.
▲ 창을 늘린다거나 이동시킨다던가 하면 내용이 지워지기 마련이다.
왜냐하면 윈도우즈가 화면을 보관 및 복구해주지 않기 때문이다.
그러나 우리는 실생활에서 창에 변화가 생겨도 기존 내용이 남아있는것을 볼 수 있는데
그 이유는 윈도우즈가 보내는 메시지가 WM_PAINT일때 복구하기 때문이다.
TEXTOUT()함수는 단지 화면에 글자를 그리는 함수이다.
그래픽 형태로 글자를 그린다.
창이뜰때 캔버스를 다시 그리는데
글자는 화면에만 떠잇지 실제로 기록된것이 아니다.
그래서 창을 옮기면 글자가 지워진다.
WMPAINT는 자주 호출된다
빨리호출해야되므로 hdc는 beginpaint, endpaint
창의크기를 바꿀때 사라진다. 다시그리기때문...
WM_PAINT는 창에 변화가있을때 호출된다.
윈도우즈에서 화면을 보관, 복구하는 메커니즘이 이런 식이라면 모든 그래픽 출력은 WM_PAINT 메시지 처리시 해 주어야만 하는가? 그렇지 않으면 그려 놓은 그림이 항상 그 자리에 있는다고 보장할 수 없는가? 그 대답은 그렇다이다. 도스에서와 같이 아무렇게나 화면에 출력해 놓아서는 안된다. 그렇다면 모든 프로그램은 현재 화면에 그려진 내용을 철저하게 기억하거나 다시 그리기 위한 준비를 해 놓아야 하는가? 그 대답도 물론 그렇다이다. 그 복잡한 출력형태를 어떻게 다 일일이 기억해 두는가 하고 의아해하겠지만 모든 윈도우즈 프로그램이 그렇게 하고 있다. |
■ 문자열 출력
■ 그래픽 출력
■ 메시지박스
옵션으로 집어넣는방법 이잇고 소스코드로 집어넣는 방법이있다.
지금까지의 컴퓨터는 1,0 두가지인식방법밖에 없는데,
양자컴퓨터는 네가지 방법이 있을것이다.
■ 무효화 영역
wordParam, longParam
무효영역 - 가려져서 안그려도되는 영역. 유효화 되어야할 영역.
대부분의 작업이 WM_PAINT를 발생시키는데, 마우스커서모양은 WM_PAINT를 방생시키지 않는다.
프로그램내부에서 WM_PAINT를 만들어내는 방법이 InvalidateRect()함수이다.
캐릭터가 움직인다면 움직이기전,움직인후 캐릭터 근처영역만 다시 그린다.
일반키는 WM_CHAR 특수키는 WM_KEYDOWN으로 받는다.
가상키코드
728x90
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151113 - 강동조 API 개인 업무일지 2일차 (5) | 2015.11.13 |
---|---|
20151113 WinAPI / 11번 남수진 (5) | 2015.11.13 |
2015.11.13 -권오민- WinAPI-2일차 (5) | 2015.11.13 |
20151113-김재홍-win32API_2일차-출력과 입력 (4) | 2015.11.13 |
20151113 - WinAPI 두번째 시간 일지 엄민웅 (수업진도 4-1-다. WM_KEYDOWN 까지) (4) | 2015.11.13 |
2015.11.13_개인업무일지_[Win32API #2]_이량경 (4) | 2015.11.13 |
20151112 - 강동조 API 개인 업무일지 (2) | 2015.11.13 |
20151113 김태현 WinAPI 1일차 기본문 분석 (3) | 2015.11.13 |