안녕하십니까? 이번 포스팅에서는 제가 구현한 작업관리자의 알고리즘을 설명드리겠습니다. 

물론 실력이 부족하여 전부 구현하지는 못하였고 최소한의 기능(응용프로그램)만 구현하였습니다. 그럼 한번 알고리즘을 살펴봅시다.

1. 작업관리자는 윈도우가 아닌 대화상자로 생성되고 대화상자에 메뉴, 탭 컨트롤 등을 추가한다.

2. 작업관리자 창의 응용프로그램 부분은 리스트 뷰로 구현되어 있다.

3. 리스트 뷰에는 데스크탑에서 얻어온 윈도우 핸들이 추가된다.

   이 때 가져오는 윈도우 핸들은 제목표시줄에 문자열이 존재해야 하고 자식윈도우가 아니어야 하며 보여지는 윈도우(WS_VISIBLE)이어야 한다.

4. 리스트 뷰의 헤더 버튼을 누르면 가져온 윈도우의 핸들들이 정렬된다.

5. 작업관리자는 항상 최상의 창 위치에 존재한다.

6. 작업끝내기 버튼을 누를시 해당되는 핸들에 WM_CLOSE 메세지를 보낸다.

7. 전환 버튼을 누를 시 작업관리자 창은 최소화가 되고 포커스를 해당되는 핸들로 전환한다.

8. 작업관리자는 자기 자신의 핸들을 리스트 뷰에 추가시키지 않는다.

등이 있겠네요. 물론 실제로는 더 많이 있겠지만 일단 제가 구현한 부분만 설명드렸습니다. 다음 포스팅에서는 리소스를 한 번 살펴봅시다.


Posted by englishmath
,