728x90
교내 전공과목인 윈도우즈 API수업을 정리합니다 1. Timer프로그램을 수평우향으로 움직이게 바꾸자. (기존: 수직하향) #그전에, [오류: 'ZI'과(와) '/Gy-'명령줄 옵션이 호환되지 않습니다.] 해결하기 아니오 -> 예로 바꿔주기. (1) 코드소스 case WM_TIMER: if (x >= rect.right) //바뀜 { str[0] = rand() % 26 + 97; y = rand() % (rect.bottom - 40) + 20; //바뀜 x = 0; //바뀜 } x += 60; //바뀜 InvalidateRect(hWnd, NULL, TRUE); return 0; 3주차(1) 포스팅 글에 있던 소스에서 WM_TIMER부분만 바꿔주면 됨. (2) 실행결과 옆으로 움직이고 있는 거 맞음...
교내 전공과목인 윈도우즈 API수업을 정리합니다 1. Timer을 알아보자. (1) 코드소스 LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; SYSTEMTIME st; static TCHAR sTime[128]; static RECT rt={100,100,400,120}; switch (iMessage) { case WM_CREATE: //window를 켰을 때 한 번 나타남. (p.99) SetTimer(hWnd,1,1000,NULL); // (1) SetTime(윈도우핸들, 타이머 번호, 메시지 생성간격, 보통 NULL지정) //SendMessage(hWnd, W..
가용공간 리스트 가용공간 리스트에 대한 소개 의미 사전적 의미: 컴퓨터 운영 체제가 주기억 장치의 사용되지 않은 영역, 또는 블록을 라이브러리 형태로 구성한 목록 직관적인 의미: 이제 사용하지 않는 노드를 체인 형태의 리스트로 만들기 등장 동기 체인과 원형 레스트에서 진행되는 삭제는 노드를 하나씩 처리한다. => 따라서 체인 혹은 원형 리스트는 리스트의 길이에 비례하여 시간이 소요된다. => 삭제라는 행위자체가 비효율적이네. 내용이 삭제된 노드에 파괴자를 실행하는 대신에, 삭제된 자유노드를 체인으로 유지하여 새로운 노드가 필요하면 이 빈 공간을 할당하게 만들면 좋을 것 같다. (존재자체를 지우던 삭제라는 행위를 아예 생략하는 거지.) 만약 가용 공간 리스트가 공백이라면 new를 통한 새로운 노드를 생성하..
데이터구조 조교로써 채점을 하려는데, 채점에 앞서 내가 사전적으로 다시 공부를 해야했다. 알아야 하는 개념은 연결할당시스템 and 원형연결리스트 and 가용공간 리스트 원형연결리스트 # 원형 연결리스트란 선형리스트가 아닌 원형리스트. 사진에서는 단순연결리스트처럼 맨 앞 노드를 가리키게 한 예다. 리스트의 마지막 노드가 링크의 첫번째 노드를 가리키게 되어 순환적인 형태를 띤다. 다음과 같은 특징이 있다. 한 노드에서 다른 모든 노드로의 접근이 가능 노듭의 삽입/삭제 진행시 선행 노드의 포인터가 필요 그리고, 위의 사진을 기준으로 보면 삽입/삭제시 다음과 같은 문제가 일어난다 head가 맨 앞 노드를 가리키고 있다. 삽입시 맨 앞 노드 앞에 삽입해야한다. 맨 뒤 노드까지 탐색해야 한다 => 비효율적이다. #..
교내 전공과목인 윈도우즈 API수업을 정리합니다 1. 지난 실습코드에서 사각형의 브러쉬 색상을 지정해주자 (1) 코드소스 /* CALLBACK WndProc 함수 */ LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; HBRUSH hBrush; // 내부 색상 설정 HPEN hPen; // 테두리 설정 int x, y; switch (iMessage) { case WM_CREATE: hWndMain = hWnd; return 0; case WM_LBUTTONDOWN: // 특정윈도우의 그리기 관련 정보 hdc = GetDC(hWnd);//모든 그리기 함수에세 cd..
교내 전공과목인 윈도우즈 API수업을 정리합니다 1. 작성된 코드를 기반으로 WindowsAPI 프로젝트 시작하기 # 프로젝트 생성: 실습실에서 쓰는 vs2012버전 기준 (1) 프로젝트 > win32 > 솔루션디렉토리 Uncheck > 응용프로그램 빈 프로젝트 체크 (2) 솔루션 탐색기 > 소스파일 > .cpp 파일에 하단의 소스 삽입 # 프로젝트 생성: 개인용으로 쓰는 vs2019버전 기준 (1) 새 프로젝트 만들기 > Windows 데스크톱 마법사 (2) 프로젝트명, 솔루션 이름 작성 (3) 새 프로젝트 구성 > 애플리케이션 종류: 데스크톱 애플리케이션 > 추가옵션: 빈 프로젝트 > 확인 (4) 솔루션 탐색기 > 소스파일 > .cpp 파일에 하단의 소스 삽입 # 기반이 되는 windowsAPI(Ap..