본문 바로가기
코스웨어/15년 스마트컨트롤러

20151112_주재민_API_01

by 알 수 없는 사용자 2015. 11. 13.
728x90
반응형

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 : 먼저 하면 먼저 실행이 된다.

 

 

 

 

 

 

 

728x90