API 6

API(8) -window destop으로 선 원 sin그래프 그리기

선, 원 ,sin그래프 등을 그려보도록 하겠습니다. 선을 그리는 방법1 MoveToEx(hdc, 10, 10, NULL); //선의 시작지점 LineTo(hdc, 200, 400); //선을 그려주고 다른 한점을 나타낸다. LineTo(hdc, 400, 200); MoveToEx로 선의 시작지점을 나타내주고 LineTo로 다른 점을 나타내주고 선을 나타내 주는 함수입니다. 그러면 이제 삼각형을 그려보도록 하겠습니다. 그냥 해도 되긴 하는데 이왕이면 수학적으로 접근해보도록 하겠습니다. 그러면 선행되어야 할 학습이 있습니다. sin, cos을 알아야하는데요 . 여기에서 y/x=cos(∂)이고 t/x=sin(∂) 인것은 알고 있다고 생각하겠습니다. 이렇게 원을 그렸을 경우 x, y좌표를 알수 있습니다. 이것을..

비트교육/API 2020.09.07

API(7) - realtime 방식과 button ,setTimer

이번에는 realtime 방식과 button ,setTimer을 해보겠습니다. 들어가기에 앞서 int APIENTRY wWinMain(_In_ HINSTANCE hInstance, // 응용 프로그램의 고유 아이디 중요!! _In_opt_ HINSTANCE hPrevInstance, // _In_ LPWSTR lpCmdLine, // _In_ int nCmdShow) // 윈도우의 초기 상태 지정 WinMain의 인수에 대한 것입니다. 마지막 인수 nCmdShow 를 보시면 ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); 밑에 코드에 이것이 있습니다. nCmdShow 는 그냥 초기상태 값이라고 보면되는데 howWindow(hWnd, SW_SHOWDEFAULT); //..

비트교육/API 2020.09.05

API(6) -WinMain함수 알아보기

이제 WinMain을 알아보겠습니다. HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_EX200903)); //리소스 파일 로딩 MSG msg; // 기본 메시지 루프입니다: while (GetMessage(&msg, nullptr, 0, 0)) //이벤트가 일어나면 큐에 하나씩 쌓이고 GetMessage로 큐에 있는것을 빠져나오게한다. { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) //단축키 적용하려는 함수 { TranslateMessage(&msg); //키보드를 누르거나 때면 WM_CHAR 메세지를 발생시킨다. DispatchMessage(&msg); //WinProc..

비트교육/API 2020.09.05

API(5) -WM_PAINT에 대해 알아보기!

WM_PAINT에 대해서 다뤄볼 것입니다. case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); // TODO: 여기에 hdc를 사용하는 그리기 코드를 추가합니다... EndPaint(hWnd, &ps); } break; 일단 먼저 BeginPaint 로 시작해서 EndPaint 로 끝나는 것이 있다. 이처럼 세트로 묶여져 있는 것은 대부분 메모리 할당 하고나서 해제해는 함수이다. //RECT r; //사가형의 lefttop, right bottom //SIZE s; //가로세로 길이 (width, height)(horizontal, vertical) //POINT p; //좌표 //--> 이 3개 구조체는 꼭 알아두기! 이 3개 구조체는 ..

비트교육/API 2020.09.03

API(4) -win32의 WndProc에 대해 알아보기!

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 이 WndProc함수를 알아보겠습니다. WndProc(발생할 주체, 메세지, wParam, lParam) 에서 lParam은 우리 마우스의 좌표입니다. int x = LOWORD(lParam); int y = HIWORD(lParam); LOWORD에 들어가 보면 ((WORD)(((DWORD_PTR)(l)) & 0xffff)) 로 정의가 되어있습니다. 여기서 0xffff 는 0x0000ffff인데 이것을 & 하면 앞에 4비트는 0이되고 뒤에 4비트는 숫자 그대로인 것을 알 수 있습니다. ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))..

비트교육/API 2020.09.03

API(3) -win32의 WinProc에 대해 알아보기!

이번에는 WinProc의 함수를 보겠습니다. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_COMMAND: { int wmId = LOWORD(wParam); // 메뉴 선택을 구문 분석합니다: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); ..

비트교육/API 2020.09.03