API 수업
API의 기본 되는 소스. 여기에 계속 추가한다.
특징을 알아 보는 것이 목표.
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //callback은 컴파일하면 없어진다
//callback은 운영체제가 호출한다. callback은 지워도 동작한다. hwnd는 window handler를 뜻한다.
//UINT : unsiged int. WPARAM : typedef. LPARAM
HINSTANCE g_hInst; //전역변수 g가붙어있다
LPSTR lpszClass = L"First";
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance
, LPSTR lpszCmdParam, int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst = hInstance;
WndClass.cbClsExtra = 0; //초기화
WndClass.cbWndExtra = 0; //초기화
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //창의 전체 색깔
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); //마우스 커서 모양
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); //아이콘모양.
WndClass.hInstance = hInstance;
WndClass.lpfnWndProc = (WNDPROC)WndProc;
WndClass.lpszClassName = lpszClass;
WndClass.lpszMenuName = NULL; //메뉴이름
WndClass.style = CS_HREDRAW | CS_VREDRAW; //창의 가로세로 세팅
RegisterClass(&WndClass); //레지터에게 값을 등록시켜 일을 시킴
hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW, //화면에 보여준다.
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, (HMENU)NULL, hInstance, NULL);
ShowWindow(hWnd, nCmdShow);
while (GetMessage(&Message, 0, 0, 0)) {
TranslateMessage(&Message); //키보드처리
DispatchMessage(&Message); //쓰레기값처리
}
return Message.wParam;//창을 종료. 창을닫는메세지가0을 반환한다
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{ // <----- 일을하는함수, 여기에 케이스 추가. 실제 이 함수를 주로 조작하게 될 것이다.
switch (iMessage) {
case WM_DESTROY: //디파인값. WM_ xxxx. 창닫는 메시지의 시간을 벌기 위한것.
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
Polling 방식.
반복문으로 일을 계속하게 하는 방식. <-> 인터럽트방식
다른 일은 하지 않는다.
Queue
FIFO : 먼저 하면 먼저 실행이 된다.
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151112 - 강동조 API 개인 업무일지 (2) | 2015.11.13 |
---|---|
20151113 김태현 WinAPI 1일차 기본문 분석 (3) | 2015.11.13 |
20151112 윤재희 API #1 WinAPI 기본형 코드 (4) | 2015.11.13 |
2015-11-12 Win32 API 개인 업무일지 - 천정호 (6) | 2015.11.13 |
20151112_임현수_업무일지_WIN32API#1 (6) | 2015.11.13 |
2015.11.12_개인업무일지_[Win32API #1]_이량경 (5) | 2015.11.13 |
20151112_안향진_API_01 (5) | 2015.11.13 |
20151112-김재홍-win32API_1일차-첫번째예제 (3) | 2015.11.13 |