반응형

분류 전체보기 60

WPF를 사용하는 이유

1. 디자인과 동작 로직 분리 Windows Forms, MFC는 사용자 인터페이스를 구현하기 위해 코딩 언어를 사용한다. Button btnTest = new Button(); btnTest.Text = "Test Button"; btnTest.Left = 50; btnTest.Top = 100; btnTest.Click += new EventHandler(btnTest_Click); public void btnTest_Click(object sender, EventArgs e) { } 위 코드는 디자인 코드와 논리 코드가 섞여 있는 형태이다. 해당 코드만으로는 외관을 알아보기 힘들며, 디자인을 하기 어려워 진다. 또한, 디자이너와 분업 시 디자이너는 위 코드를 해석하고 편집할 수 있어야 한다. WPF..

정리 작업중 2022.08.26

GDI 오브젝트의 기본

GDI의 개념 Graphics Device Interface의 줄임말로 윈도우가 제공하는 그래픽 데이터를 처리하기 위한 표준 인터페이스이다. 즉, GDI를 이용해 텍스트, 선, 사각형, 비트맵 등을 출력할 수 있다. 윈도우가 하드웨어를 제어 할 수 있도록, 응용프로그램에 제공하는 모든 기능을 의미 하기도 한다. DC의 개념 Device Context의 줄임말로 윈도우 프로그램은 윈도우 화면에 출력되는 모든 내용을 DC를 이용해 출력한다. DC는 응용프로그램과 출력장치를 연결하는 고리 역할을 하며, 출력에 대한 승인과 영역 결정의 역할도 수행한다. DC를 이용하면, 하드웨어에 무관한 하드웨어 독립적인 출력이 가능하게 된다. DC를 얻는 방법 OnDraw() 함수, OnPaint() 함수를 이용하는 방법 G..

정리 작업중 2022.08.14

Status bar

상태바 상태바는 윈도우 하단에 사용자에게 일정한 정보를 알려주는 인터페이스이다. 메뉴 항목에 대한 정보, 마우스 커서 위치 등과 같이 바로 전달될 수 있는 정보를 알려준다. 툴바 메뉴바 처럼 리소스가 제공되지 않고, CStatusBar 클래스를 통해 구현할 수 있다. 상태 표시줄을 나타내는 방법 1. CStatusBar의 객체를 생성 2. CStatusBar::Create() 함수를 이용해 상태 표시줄 윈도우를 생성 3. Pane을 만들고, 크기를 설정한다. * MFC에서는 CMainFrame 클래스에 CStatusBar 클래스로 m_wndStatusBar 멤버 변수가 미리 선언되어 있다. 전역 함수 AfxGetApp() 함수 Afx라고 붙는 함수는 전역 함수를 의미한다. 응용프로그램의 여러요소에 직접 ..

정리 작업중 2022.08.08

Menu

메뉴의 개요 응용프로그램의 명령들의 집합 즉, 응용프로그램이 제공하는 기능을 사용자가 이용하기 쉽게 해주는 명령어들의 모음 메뉴의 종류 Pull-down Menu - 사용자가 메뉴를 선택하면 하위 메뉴가 아래로 drop down 되는 메뉴 (사진) Cascading Menu - 메뉴의 오른쪽이나 왼쪽에 또 하나의 서브 메뉴가 나타나는 스타일 (사진) Pop-up Menu (Context Menu) - 애플리케이션 상태에서 마우스 오른쪽 버튼을 클릭하면 등장하는 메뉴 (사진) MFC 메뉴 작성 MFC가 만들어주는 기본적인 메뉴가 존재한다. 해당 메뉴 위에 프로그래머가 의도하는 메뉴를 추가하는 식으로 메뉴 응용프로그램을 만들 수 있다. Resource View의 Menu 폴더에서 IDR_MAINFRAME을 ..

정리 작업중 2022.08.07

Message Box

Message Box 상자를 이용해 메세지를 출력해주는 인터페이스 간단한 메시지를 출력하는데 이용된다. AfxMessageBox() 함수를 를 이용해 메시지를 출력할 수 있다. MessageBox에는 버튼과 아이콘을 조합해서 넣을 수 있는데, OR 연산자를 사용한다. AfxMessageBox(_T("윈도우가 만들어짐"), MB_ICONWARNING | MB_OKCANCEL); AfxMessageBox() return value 어떤 버튼을 눌렀는지 확인 값이 나온다. 버튼 스타일 종류 MB_OK : 확인 MB_OKCANCEL : 확인, 취소 MB_YESNO : 예, 아니오 MB_YESNOCANCEL : 예, 아니오, 취소 MB_RETRYCANCEL 재시도, 취소 MB_ABORTRETRYIGNORE : 취..

정리 작업중 2022.08.04

Message Handling

메시지 처리 기본 Visual C++ 프로그램은 마우스나, 키보드 등의 사용자가 발생시키는 이벤트에 대해 감지하다가, 해당 이벤트가 발생하면, 이에 해당하는 함수를 호출하는 방식으로 진행된다. 메시지 (Message) 프로그램에서 마우스나, 키보드를 조작하면 OS는 이에 대응하는 메시지를 프로그램에 보낸다. 그리고 프로그램은 OS로부터 받은 메시지에 상응하는 처리를 하게 된다. 메시지 종류 메시지는 처리하는 주체에 따라 Windows message, Control notification message, Command message로 나뉜다. Windows message WM_ 로 시작하는 메시지, (단 WM_COMMAND는 제외)윈도우 상태가 바뀌거나, 메뉴나 대화 상자를 초기화할 때 발생한다. 마우스,..

정리 작업중 2022.07.31

MFC 주요 클래스

CObject 클래스 MFC의 모든 클래스 중, 가장 기본이 되는 클래스 거의 대부분의 MFC 클래스들이 CObject클래스로부터 상속을 받는다. 직렬화 지원 실행 중인 클래스에 대한 정보 객체에 대한 정보 출력 컬렉션 클래스와의 호환성 CCmdTarget 클래스 메시지를 처리하는 기본 클래스 윈도우 메시지를 처리하는 MFC클래스 모두는 CCmdTarget이나, 이것의 파생 클래스로부터 상속받는다. CWnd 클래스 윈도우 자체를 객체화한 클래스 CObject 클래스와 CCmdTarget 클래스를 상속받은 클래스이다. MFC가 제공하는 모든 윈도우 클래스의 기본 기능이 구현된 클래스이다. MFC의 모든 창(윈도우) 클래스 기능을 제공 CWindApp 클래스 CDocument, CFrameWnd, CView..

정리 작업중 2022.07.30

MFC란

MFC란? MFC (Microsoft Foundation Class) MS사가 만든 C++ 기반의 윈도우 라이브러리이다. 윈도우 환경의 응용프로그래밍을 쉽게 하기 위해 제공해주는 C++ 클래스의 라이브러리 집합. 윈도우 응용 프로그래밍은 Win32 API 로도 구현할 수 있는데, Win32 API는 C언어를 기반하고 있고, MFC는 C++를 기반으로 하고 있다. 시간이 지나면서 MFC프로그래밍 방식의 편리함과, 객체지향적인 구조 때문에 Win32 API보다, MFC를 사용하는 방향으로 개발환경이 바뀌기 시작했다. 윈도우가 메시지를 받을 때마다, MFC는 메시지와 연관된 멤버 함수를 호출한다. 이때 사용되는 것이, Message Map이라는 기술을 사용하며, Message Map은 메시지와 함수의 연관관계..

정리 작업중 2022.07.30

윈도우 프로그래밍의 시작

Visual studio 단축키 Ctrl + F7 소스코드 컴파일 F7 프로젝트 컴파일 Ctrl + F5 프로젝트 실행 F5 프로젝트 디버깅 F9 브레이크포인트 저장 윈도우 프로그래밍 이란? 사용자로부터 발생되는 이벤트에 의해 실행되는 특징을 가진다. 때문에, 이벤트 기반, 메시지 기반 프로그래밍이라고 불린다. 윈도우 프로그래밍을 작성하는 방법 Win32 SDK를 이용하는 방법과, MFC를 이용하는 방법이 있다. 윈도우에서는 모든 자원을 handle로 관리한다. handle은 자원을 관리하기 위한 번호이다. 윈도우 프로그래밍에서는 다음과 같은 새로운 형식이 정의되어 있다. MSG 구조체 메시지 큐에 저장된 메시지 정보를 담고 있다. WNDCLASSFX 구조체 윈도우 속성에 대한 정보를 가지고 있다. PA..

정리 작업중 2022.07.28
반응형