여기서는 특별한 안내서가 필요하지 않다고 생각합니다. 가장 기본적인 GUI의 핵심은 윈도우, 버튼, 그림, 텍스트 상자 등을 나타내는 직사각형 객체 목록을 관리하는 것입니다.
모든 직사각형 객체는 x 좌표와 y 좌표 및 크기 (너비와 높이를가집니다.). 또한 z (깊이) 좌표가있어 그 아래에있는 대상 (z가 작음)과 그 위에있는 대상 (z가 더 큼)을 알려줍니다.
모든 직사각형 개체에는 부모와 자식에 대한 포인터도 있습니다. 이렇게하면 더 작고 간단한 직사각형의 임의의 복잡한 창을 쉽게 구성 할 수 있습니다. 사물. 예를 들어 창을 움켜 잡고 이동할 때 이러한 부모/자식 포인터를 사용하여 모든 개체를 이동할 수 있습니다. 또는 외부 객체가 이벤트를 받으면 처리를 위해 내부 자식으로 전달할 수 있으며 반대의 경우도 가능합니다.
일부 직사각형이 부분적으로 또는 완전히 다른 사람에 의해 가려 질 수 있습니다. 가장 중요한 것은 모든 개체가 보이지 않고 보이지 않고 부분적으로 보이는지 파악하는 것입니다. 불필요한 작업을 많이하고 싶지 않습니다. 효율적으로 모든 픽셀을 한 번 (항상 또는 대부분) 그릴 개체를 그립니다. 필요한 직사각형 교차/세분화 코드 외에도 모든 객체가 자체의 임의의 직사각형 부분을 효과적으로 그리는 방법을 알고 있음을 알 수 있습니다. 이것은 단색 개체에 대해 가장 중요합니다. 사진의 경우 다소 (이미지 스케일링 및 색상 축소/변환을 원하는 경우가 아니면) 직선적입니다. 텍스트 및 벡터 객체의 경우 가장 힘듭니다.
작은 사각형 개체에서 마우스 포인터 개체를 구성하고 다른 모든 개체와 동일한 코드로 그리거나 다시 그립니다. 포인터가 항상 다른 모든 객체 위에 오도록 포인터의 z (깊이) 좌표가 맞는지 확인하십시오.
그게 일반적인 생각입니다.
@vines : 무례하고 아마추어 개발자가 운영 체제를 만들 수 있습니다. 모두들 배울 리소스가 필요합니다. – CharlesB
@CharlesB : 발견하기 전에 주저 했었습니다 : http://stackoverflow.com/questions/8964440/operating-mouse-driver -in-c 나는 또한 단순한 것으로 시작하는 조언을 생각했지만, 그것은 더욱 잔인하게 들리며 나는 정말로 누군가를 불쾌하게 할 의도가 없다. – vines