728x90
반응형
■ WIN32API
■ TranslateMessage
▲ 오직 TransleateMessage()가 wm_char메시지를 생성한다.
DispatchMessage() wndProc을 호출한다.
keydown이 전달되려면 translate와 dispatch까지 통과되어야 한다.
만약 translate를 빼버리면 char는 절대로발생하지 않는다.
■ 마우스
WndProc의 wparam, lparam
옛날엔 2, 4 바이트
지금은 4, 4 바이트
키보드조합이 wparam, lparam으로 오는것처럼 마우스도 마찬가지이다.
넘어오는 정보중의 일부가 좌표정보이다.
lparam에서 x, y좌표가 날라온다.
이걸 절반으로 자르면 x, y좌표를 얻을 수 있다.
이 좌표는 바탕화면 기준이아니고, 창내부의 좌표를 의미한다.
wparam정보에는 마우스버튼 상태와 키보드와 조합 상태가 전달된다.
lparam이 32비트이므로
x좌표 16비트, y좌표 16비트로 이루어졌으니
약6만5천, 약6만5천개가 한계라고 할 수 있다.
나중에 고해상도가 나왔을 때 lparam의 long을 8바이트로 올리면
약40억, 약40억이 되니 해결된다.
매크로함수
BOOL형 - typedef해서 만들어 놓았음.
소스코드를 보면 실제로 선을 긋고있다라고 볼 수 있다.
lsprintf();
윈도우에서 2바이트 유니코드체제를 출력할때 쓰는 함수.
▲ 마우스움직임에 따라 좌표가 표시된다.
■ 더블클릭
▲ 더블클릭으로 화면 삭제하는 소스
■ Timer
WM_CREATE는 창이 만들어질 때 딱 한번 호출된다.
SetTimer 타이머를 만드는 함수.
타이머를 여러개 사용할 수 있기 때문에
1000은 milisec단위이다.
안적으면 wmtimer라는 메시지만 만들어진다.
mytime에 넣어준다.
현재시간을 초로 갖고잇기때문에 계산을 ctime이라는 함수를 호출하면 문자열로 바꿔준다.
그 주소를 str에 집어넣고잇다
글자가 바뀐것의 주소를 갖고있다.
그래서 시간이 계속 뿌려진다.
KillTimer의 두번째인자가 1인데 이게 타이머번호와 일치해야한다.
주로 이 타이머의 용도는 게임같은거 보면 미사일 속도라던가..... 그런 거다.
■ SendMessage
타이머가 여러개 사용될 수 있기 때문에, sendMessage의 3번째 인자를 타이머번호로 지정한다.
■ 콜백 함수
폴링방식
■ 작업 영역
■ 메뉴 생성
메뉴이름 앞에 &를 붙이면 밑줄이 간다.(Alt + 단축키 사용가능)
각각의 메뉴는 번호로 관리한다.
메뉴번호는 비쥬얼스튜디오가 알아서 정한다.
메뉴번호는 추가할때마다 계속한다.
메뉴를 삭제해도 그 메뉴번호를 재사용하지 않는다.
어떤 메뉴를 클릭하던지 하던지 WM_COMMAND가 생성된다.
■ 커서 생성
▲ 커서 역시 ID가 자동생성된다.
728x90
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151116 API_3/ 남수진 (4) | 2015.11.16 |
---|---|
20151116-김재홍-win32API_3일차 (2) | 2015.11.16 |
2015.11.16 -권오민- WinAPI-3일차 (3) | 2015.11.16 |
20151116 22번 업무일지 우대희 API (3) | 2015.11.16 |
20151113 22번 업무일지 우대희 API (5) | 2015.11.16 |
2015-11-13 Win32 API 개인 업무일지 - 천정호 (6) | 2015.11.16 |
20151113_안향진_API_02 (5) | 2015.11.15 |
20151113 - 주재민 API 개인 업무일지 2일차 (4) | 2015.11.15 |