New14 3. 메시지 처리 (2) 3.3 마우스 메시지 (Mouse Message)자주 사용하는 마우스 메시지와 메시지 핸들러 함수메시지 유형발생 상황메시지 핸들러 함수WM_MOUSEMOVE마우스를 이동OnMouseMove()WM_LBUTTONDBLCLK왼쪽 마우스 버튼을 더블 클릭OnLButtonDblClk()WM_LBUTTONDOWN왼쪽 마우스 버튼을 누름OnLButtonDown()WM_LBUTTONUP왼쪽 마우스 버튼을 놓음OnLButtonUp()WM_RBUTTONDBLCLK오른쪽 마우스 버튼을 더블 클릭OnRButtonDblClk()WM_RBUTTONDOWN오른쪽 마우스 버튼을 누름OnRButtonDown()WM_RBUTTONUP오른쪽 마우스 버튼을 놓음OnRButtonUp()WM_MOUSEWHEEL마우스 휠을 움직임OnMouse.. 2024. 12. 11. 3. 메시지 처리 (1) 3.1 메시지 처리의 기본 개념윈도우 시스템에서는 사용자의 모든 행위가 메시지 형태로 전달됨1) 메시지의 종류윈도우 메시지는 메시지를 처리하는 주체에 따라 윈도우 메시지, 컨트롤 통지 메시지, 그리고 명령 메세지로 나눌 수 있음[ 윈도우 메시지 ]WM_로 시작하는 메시지로 매개변수를 가지고 있어 메시지를 어떻게 처리할 것인지를 결정하는 데 사용 (WM_COMMAND는 제외)윈도우 관리 메시지: 윈도우의 상태가 바뀔 때 발생초기화 메시지: 응용 프로그램이 메뉴나 대화상자를 구성할 때 발생입력 메시지: 마우스, 키보드로 입력할 때 발생[ 컨트롤 통지 메시지 ]Button, Combo Box와 같은 제어 객체나 자식 윈도우에서 부모 윈도우로 보내는 메시지[ 명령 메시지 ]명령 메시지는 메뉴, 툴바, 엑셀러레이.. 2024. 12. 8. 2. MFC 개요 및 아키텍처 (2) 2.4 MFC 애플리케이션 아키텍처1) CObject 클래스MFC의 최상위 기본 클래스로써 메모리에 클래스를 설정하는 기능을 가진 클래스CObject 클래스는 클래스 루트로써만 작용하는 것이 아니라, 다음과 같은 서비스와 기능을 제공함직렬화 (Serialization)의 지원: 현재 클래스의 객체가 디스크에 저장할 수 있도록 지원하고, 저장 여부를 확인할 수 있음Run - Time 클래스 정보: 현재 클래스의 상태를 확인하고 오류를 정리할 수 있음객체의 검사 출력: 클래스의 객체가 유효한지 검사컬렉션 클래스에 대한 호환성 제공: 컬렉션 클래스에 저장 가능한 객체는 CObject 클래스를 상속받은 클래스만이 가능하므로 사용자 클래스를 제작해 컬렉션 클래스에 저장하고자 한다면 항상 CObject를 상속받아.. 2024. 12. 7. 2. MFC 개요 및 아키텍처 (1) 2.1 MFC의 개요MFC (Microsoft Foundation Class)윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리개발 시간을 단축시키고 좀 더 이식성이 강한 코드를 작성할 수 있게 함프로그래밍 하기 어려운 사용자 인터페이스 요소와 ActiveX, OLE, 인터넷 프로그래밍 같은 기술 지원ODBC나 OLE DB를 통해 데이터베이스 프로그래밍과 윈도우 소켓을 통해 네트워크 프로그래밍 같은 애플리케이션을 손쉽게 작성할 수 있게 해줌프로퍼티 시트, 인쇄 미리보기, 도구바, 리본 사용자 인터페이스 같은 기능을 손쉽게 프로그래밍하게 해줌2.2 MFC 프로그램의 구조MFC 프로그램은 크게 SDI와 MDI의 두 가지 형태로 나눌 수 있음SDI (Single Document Interfa.. 2024. 12. 2. 1. 윈도우 프로그래밍의 이해 (3) 1.4 윈도우 프로그램의 기본 형식핸들이란?: 자원을 식별하기 위한 정수 번호윈도우는 핸들이라는 번호를 윈도우 시스템이 관리하는 모든 자원에 부여함윈도우 프로그램은 구조체를 이용해 모든 것을 객체화함이 객체들을 조정하기 위해 핸들이 필요함1) 새로운 데이터 형식① MSG 구조체: MSG 구조체는 메시지 큐에 저장되는 메시지 정보를 담고 있는 구조체임typedet struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt;} MSG;hwnd: 이 메시지를 받아서 처리할 윈도우에 대한 핸들을 나타냄message: 발생한 메시지를 가지고 있으며, 내부적으로 정수형으로 정의되.. 2024. 11. 29. 1. 윈도우 프로그래밍의 이해 (2) 1.3 간단한 윈도우 애플리케이션의 분석1) WinMain() 함수운영체제에 윈도우를 등록함메모리에 프레임 윈도우를 생성하고 속성을 초기화하여 화면에 표시될 수 있도록 함메시지 루프를 생성하여 해당 윈도우에 대한 메시지를 메시지 큐로부터 받아와 메시지를 해당 윈도우 프로시저로 보냄① 윈도우 클래스 등록WinMain() 함수는 윈도우 클래스 구조체인 WNDCLASSEX 데이터 구조체를 생성하고 구조체 멤버에 값을 채워 초기화한 다음, RegisterClassEx() API 함수를 호출하여 운영체제에 등록함WndClass.cbSize = sizeof(WNDCLASSEX); // 구조체 크기WndClass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; //.. 2024. 11. 26. 이전 1 2 3 다음