본문 바로가기

MFC/C++

MFC 분할 윈도우(4) - 다중 분할 윈도우 만들기 이번엔 다중 분할 윈도우 예제입니다. 앞서 만들었던 정적 분할 윈도우 예제 소스를 약간 수정만 하면 쉽게 다중 분할 윈도우를 만들 수 있습니다. ◎ CSplitterWnd 클래스의 인스턴스 생성 다중 분할 윈도우는 생성된 분할 윈도우의 위에 또 다른 분할 윈도우를 올려 놓는 것입니다. 그래서 필요한 분할 윈도우의 갯수만큼 인스턴스를 생성해야 합니다. 아래와 같이 두 개의 인스턴스를 만듭니다. CSplitterWnd m_wndSplitter1; CSplitterWnd m_wndSplitter2; 만드는 위치는 물론 CMainFrame 클래스입니다. ◎ OnCreateClient의 재정의 다음으로 OnCreateClient함수를 재정의 합니다. m_wndSplitter1을 이용해서 윈도우를 좌, 우로 나누어.. 더보기
MFC 분할 윈도우(2) - 동적 분할 윈도우 만들기 SDI기반에서 동적 분할 윈도우를 만드는 방법에 대한 간단한 예제입니다. 동적 분할 윈도우를 만드는 과정은 아주 간단합니다. MFC 프로그램에서 윈도우의 형태와 메뉴바 등과 관련된 부분을 담당하는 부분은 CMainFrame입니다. 분할 윈도우도 CMainFrame에서 만들어줍니다. 아래와 같이 두 과정을 거치면 쉽게 만들 수 있습니다. ◎ CSplitterWnd 클래스의 인스턴스 선언 처음해야 될 일은 분할 윈도우가 가지는 여러가지 기능을 담당하는 CSplitterWnd 클래스의 인스턴스를 선언합니다. CMainFrame의 멤버 변수로 아래와 같이 선언합니다. CSplitterWnd m_wndSplitter; ◎ OnCreateClient 함수의 재정의 프로그램 상에서 분할 윈도우의 위치는 프레임 윈도우.. 더보기
사용자 정의 메시지의 사용법 Dialog간의 통신이나 이벤트 발생시에 많이 사용하게 되는 사용자 정의 메세지 사용법. 1. 메세지를 정의한다. - 헤더파일에 다음과 같은 형식으로 정의 #define WM_TEST_MESSAGE WM_USER+10; 2. 메세지를 통해서 호출할 함수의 원형선언 및 구현. - 메세지를 받는 쪽 Dialog의 헤더에 함수원형을 선언한다. 헤더파일의 아래쪽 // Generated message map functions이라고 주석처리된 부분 밑에 아래와 같은 형식으로 선언 afx_msg LRESULT UserMSG(WPARAM wParam, LPARAM lParam); - cpp파일에 함수구현. 3. MESSAGE MAP에 등록. - cpp파일의 메세지 맵에 등록하여 정의된 메세지와 메세지를 통해 호출할 함.. 더보기