본문 바로가기

New16

7. 그래픽 객체의 사용 7.1 GDI와 DC의 개념1) 그래픽 디바이스 인터페이스 (GDI: Graphics Device Interface)그래픽을 출력하고자 하는 애플리케이션은 윈도우에게 요청을 하고, 윈도우는 디바이스 드라이버를 호출하면 디바이스 드라이버가 하드웨어를 구동시킨다. 하드웨어의 종류와 관계 없이 항상 같은 명령어를 이용하여 그래픽을 출력할 수 있다. 이때, 윈도우가 하드웨어를 제어할 수 있도록 애플리케이션에 제공하는 모든 기능을 그래픽 디바이스 인터페이스라고 한다.즉, 그래픽 디바이스 인터페이스는 애플리케이션과 디바이스 드라이버의 중간 다리 역할을 하는 것으로 애플리케이션에 대한 장치 독립적인 그래픽 동작을 수행한다.2) 디바이스 컨텍스트 (DC: Device Context)윈도우 프로그램은 윈도우의 화면에 출.. 2025. 3. 5.
6. 사용자 인터페이스 6.1 메뉴(Menu)메뉴는 윈도우에서 가장 보편적으로 사용되는 사용자 인터페이스로 해당 애플리케이션이 가진 기능을 사용자에게 알려주고, 사용자의 선택에 따라 기능을 수행할 수 있도록 매개 역할을 한다.메뉴의 형태는 크게 3가지로 나눌 수 있다.1) 풀다운 메뉴(Pull-down Menu)애플리케이션 상단에 여러 개의 카테고리가 일렬로 늘어서 있는 형태를 취하고 있으며, 사용자가 카테고리 하나를 선택하면 선택된 카테고리 아래로 메뉴가 뚝 떨어지면서 애플리케이션의 기능을 작동시킬 수 있는 메뉴 항목이 나타난다.2) 캐스케이딩 메뉴(Cascading Menu)풀다운 메뉴에서 변형된 메뉴 형태로, 메뉴 항목의 오른쪽에 또 하나의 서브 메뉴가 나타나는 메뉴이다.3) 팝업 메뉴(Pop-up Menu) 또는 문맥 .. 2025. 1. 19.
5. 도큐먼트 파일 입출력 및 템플릿 (2) 5.3 SDI 템플릿SDI란 뷰 클래스, 도큐먼트 클래스, 메인프레임 클래스가 하나의 템플릿으로 구성되어진 것을 말함하나의 도큐먼트를 갖는 프로그램도큐먼트 - 뷰 구조에서 도큐먼트는 디스크에서 데이터를 읽고 저장하는 기능을 함SDI 형태의 프로그램으로는 메모장이나 그림판과 같은 것들을 들 수 있음SDI에서 각 클래스의 인스턴스를 얻어오는 방법클래스의 인스턴스를 얻으면 그 인스턴스 값으로 얻어온 클래스의 멤버 변수나 멤버 함수를 이용할 수 있는 것1) 애플리케이션 클래스의 인스턴스를 얻는 방법애플리케이션 클래스의 포인터 변수를 생성한 다음 AfxGetApp()이라는 함수를 이용하면 프로그램의 어디에서나 이 클래스의 인스턴스를 얻을 수 있음2) 메인 프레임 클래스의 인스턴스를 얻는 방법메뉴와 툴바, 상태 표.. 2024. 12. 29.
컴퓨터 그래픽스 소프트웨어 (1) 컴퓨터 그래픽스 영상의 표현컴퓨터 그래픽스 영상은 도형을 표현하는 방식에 따라 크게 두 가지로 분류할 수 있다. 하나는 래스터 그래픽스 영상이고, 다른 하나는 벡터 그래픽스 영상이다.래스터 그래픽스 영상은 사각형 격자 형태의 좌표에 맞추어 나열된 픽셀로 표현되며, 각각의 픽셀에는 그 위치에 해당하는 색이 지정된다. 래스터 영상은 스크린에 표시되는 영상과 픽셀 대 픽셀로 대응한다. 이는 컴퓨터 시스템에서 디스플레이 장치의 비디오 메모리에 영상을 저장하고 이를 디스플레이에 표현하는 것과 같은 형태이며, 일반적으로 장치 독립적이다. 래스터 영상의 크기는 영상을 이루고 있는 가로 픽셀 수와 세로 픽셀 수로 표현한다. 각 픽셀당 색을 표현하는 데 필요한 비트 수에 따라 색 표현의 정밀도가 결정된다.래스터 그래픽스.. 2024. 12. 22.
5. 도큐먼트 파일 입출력 및 템플릿 (1) 5.1 도큐먼트1) CDocument 클래스템플릿을 구성하는 네 개의 클래스 중 데이터를 관리하는 클래스프로그램이 사용하는 데이터를 만들고, 읽어오고, 저장하는 역할 담당CDocument 파생 클래스에는 새로운 도큐먼트를 만드는 OnNewDocument() 함수와 도큐먼트의 내용을 디스크로부터 읽어오고 저장하는 Serialize() 함수가 정의되어 있음파일에 데이터를 저장하거나 파일로부터 데이터를 읽기 위해서는 CDocument 파생 클래스에 OnSaveDocument() 함수나 OnOpenDocument() 함수를 오버라이딩하여 코드를 작성함2) CArchive 클래스도큐먼트의 데이터를 읽고 쓰기 위한 이진 삽입(>) 연산자를 정의CArchive 클래스에서 저장의 의미는 메모리에 있는 데이터가 파일로 .. 2024. 12. 19.
4. 대화상자 (2) 4.4 모달(Modal) 대화상자와 모덜리스(Modeless) 대화상자모달 대화상자대화상자가 출력되면 애플리케이션 내의 다른 윈도우에서 작업할 수 없음즉, 모달 대화상자를 닫아야 애플리케이션 내의 다른 윈도우에 포커스를 둘 수 있음모달 대화상자는 DoModal() 함수를 이용하여 출력함모덜리스 대화상자모덜리스 대화상자를 종료하지 않아도 다른 윈도우에서 사용자 작업을 계속 수행할 수 있음모덜리스 대화상자는 다음과 같은 과정을 거쳐 출력CExDialogDlg m_Dlg;m_Dlg.Create(IDD_EXDIALOG, this);                          ⇩m_Dlg.ShowWindow(SW_SHOW);출력할 대화상자 클래스에 대한 변수 선언Create() 함수를 사용하여 대화상자를 만듬이.. 2024. 12. 15.