분류 전체보기 썸네일형 리스트형 9. 메시지 맵 메시지 맵은 Win32 API 윈도우 프로시저 함수에서 볼 수 있는 switch 문을 대체하는 것입니다. 메시지 맵은 특정 메시지 발생시 어떤 함수를 호출해야하는지 명시하는 매크로의 집합체입니다. // CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_CREATE() END_MESSAGE_MAP() MFC 메시지 맵은 BEGIN_MESSAGE_MAP() 매크로와 END_MESSAGE_MAP() 매크로를 이용하여 시작과 끝을 명시합니다. ON_WM_CREATE() 매크로는 WM_CREATE 메시지 핸들러 함수를 등록할 경우 추가되는 매크로입니다. 메시지의 등록은 사람이 직접 입.. 8. CDocument 클래스 CDocument 클래스는 문서/뷰 구조에서 문서와 관련된 MFC 클래스입니다. MFC는 문서와 관련된 처리를 개발자가 논리적으로 분리할 수 있도록 클래스를 제공하는데 그것이 바로 CDocument 클래스입니다. 이 클래스는 다양한 가상 함수를 제공하여 개발자로 하여금 자료를 처리할 수 있도록 도와줍니다. MFC 전역함수- AfxMessageBox() 메시지 상자의 출력- AfxGetMainWnd() 최상위 프레임 윈도우의 포인터 반환- AfxGetInstanceHandle() 응용 프로그램의 인스턴스 핸들 반환 CDocument 클래스에서 사용하는 함수- OnNewDocument() 새로운 Document 시작시 작동, 메인 프레임 윈도우가 화면에 나오기 전에 실행됨- OnOpenDocument() 파.. 7. CFrameWnd 클래스 최호성님의 VISUAL C++ 2008 MFC 윈도우 프로그래밍을 학습한 뒤 정리한 내용입니다. SDI 문서/뷰 구조를 갖는 MFC 응용 프로그램을 개발할 때 최상위 프레임 윈도우에 해당하는 클래스는 CMainFrame 클래스이며, 이 클래스는 CFrameWnd 클래스를 상속받아 만듭니다. 다중 문서 인터페이스 프로그램은 CMDIFrameWnd 클래스로 대체됩니다. CFrameWnd는 윈도우가 가져야 할 기본 기능을 정의한 클래스이며 뷰, 도구 모음, 상태 표시줄 등을 자식 윈도우로 취할 수 있습니다. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1.. 6. CWinApp 클래스 최호성님의 VISUAL C++ 2008 MFC 윈도우 프로그래밍을 학습한 뒤 정리한 내용입니다. CWinApp 클래스는 CObject > CCmdTarget > CWinThread > CWinApp 순서로 계층 관계를 갖고 있습니다. CWinApp 클래스 멤버- m_hInstance 현재 응용 프로그램의 인스턴스 핸들- m_lpCmdLine 프로그램 실행시 명령줄 정보- m_pszAppName 응용 프로그램의 제목에 해당하는 문자열 포인터- m_pszExeName 빌드한 실행 파일에서 확장자를 제외한 파일명 CWinApp 클래스 함수- Run() 함수가 호출되는 시점이 메시지 루프 시작 시점. Run() 메서드가 반환하면 응용 프로그램은 종료됨.- InitInstance() 메서드는 응용 프로그램이 초기.. 5. CWnd 클래스 최호성님의 VISUAL C++ 2008 MFC 윈도우 프로그래밍을 학습한 뒤 정리한 내용입니다. CWnd 클래스는 모든 MFC 클래스의 부모인 CObject 클래스와 CCmdTarget 클래스를 상속받은 클래스 입니다. CCmdTarget 클래스는 MFC의 메시지 맵과 관련된 코드가 구현된 클래스 입니다. 메시지 맵은 윈도우 프로시저 함수의 switch문을 대체하는 MFC 구조입니다. CWnd 클래스는 윈도우 자체를 객체화한 클래스입니다. CWnd 클래스 초기화 메서드- Create()/CreateEx() 윈도우 생성함수, CreateEx()는 추가로 확장 속성 지정가능- PreCreateWindow() 윈도우 생성 직전 호출되는 가상 함수, 재정의하여 생성되는 윈도우의 속성을 변경하는 코드를 추가할 수.. 4. 윈도우 프로시저 함수 최호성님의 VISUAL C++ 2008 MFC 윈도우 프로그래밍을 학습한 뒤 정리한 내용입니다. 윈도우 프로시저 함수는 특정 윈도우 메시지에 대해 개발자가 자신의 코드를 작성하는 영역이라 할 수 있습니다. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 메뉴 선택을 구문 분석합니다. switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAK.. 3. 메인 메시지 루프 최호성님의 VISUAL C++ 2008 MFC 윈도우 프로그래밍을 학습한 뒤 정리한 내용입니다. 메인 메시지 루프 코드 중에서 TranslateAccelerator() 함수는 액셀러레이터 키 테이블과 직접적으로 관련이 있습니다. 키 조합을 통한 입력시 이를 특정 메뉴의 선택으로 메시지 전환이 일어나면서 프로그램이 동작하도록 합니다. GetMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) GetMessage() 함수의 원형은 위와 같습니다. GetMessage() 함수는 응용 프로그램의 메시지 큐를 검사하여 전달받은 메시지가 있는지 확인합니다. GetMessage() 함수의 인자- lpMsg MSG구조체의 포인터가 들어가며 .. 쓰레드(Thread)의 사용 쓰레드(Thread)는 하나의 프로세스 내에서 여러 작업을 동시에 실행할 때 사용한다. 프로세스 내에서 쓰레드를 사용하면 다양한 작업을 동시에 진행할 수 있고 작업중에 얻게된 데이터를 공유할 수 있다는 이점과 여러개 프로세스를 사용할 경우 각 프로세스마다 메모리가 할당되는데 단일 프로세스 내의 쓰레드는 같은 메모리 공간을 공유한다는 이점이 있다. 쓰레드를 사용하는 대표적 사례로는 게임을 들 수 있을 것이다. 플레이어와 적의 움직임이 동시적으로 일어나야하지만 둘사이의 어떠한 연관성도 없기 때문에 둘의 움직임은 한 프로세스 내에서도 독립적으로 작동해야한다는 것을 알 수 있다. 쓰레드는 기본적으로 Thread Class를 상속받아 구현하며, 실제 쓰레드로 작동할 run() 함수를 start() 함수로 작동시키.. 이전 1 ··· 7 8 9 10 11 12 13 ··· 15 다음