AFX라고 부릅니다. ... < AFX클래스의 역할 > ** 프로그램 뼈대 ** Application Framework - MFC는 대부분의 공통적으로 수행하는 기능들을 미리 구현 · 시스템 메뉴, 메뉴, 도구모음 ... , 최대화, 최소화, 닫기 버튼 · 프로그램 크기조절 · 상태 바 상태표시 · 각 툴바(메뉴바, 도구바)등의 Frame에서의 탈/장착 기능 - 클래스 라이브러리로 제공 - AFX로
------------------------- 5.테스트 클라이언트 - MFC 다이일로그기반 프로젝트 생성(이름:MFCDllClient) 6.클라이언트 준비물 : DLL에 추가한 클래스의 ... AFX_EXT_CLASS가 없으면 cpp에 정의된 사항을 인식하지 못해서 링크에러가 계속 발생하게 된다.이 키워드가 없으면 헤더파일에 모든 정의를 해줘야 된다. ... //Calculator.h #pragma once class AFX_EXT_CLASS CCalculator { public: CCalculator(void); ~CCalculator
//}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG Doid CMouse::Mouseinit ... 클래스를 구현하였다. ... 각각의 클래스의 역할에 맞게 코딩을 하였고 버튼이 눌리면 CJMDlg클래스에서 다름 클래스를 호출해서 동작하도록 구현. 참고로 키보드의 경우는 keybd_event함수가 있다.
단계 3: 뷰 클래스 (MsgView.h)에 메시지 핸들러 선언 //{{AFX_MSG(CMsgView) // 클래스 Wizard로 생성한 메시지 핸들러 afx_msg void OnKeyDown ... (CMsgView) // 클래스 Wizard로 메시지 생성했음을 표시 ON_WM_KEYDOWN() // 키보드가 눌렸을 때 호출되는 메시지 핸들러 //}}AFX_MSG_MAP // ... (UINT nChar, UINT nRepCnt, UINT nFlags); //}}AFX_MSG // 클래스 Wizard로 생성한 메시지 핸들러의 끝 단계 4: 뷰 implementation
선언 //{{AFX_MSG(CMMTimerView) afx_msg long UserMsgHandler(WPARAM wParam, LPARAM lParam); //}}AFX_MSG ... 타이머 관리 타이머 (Timer)를 이용한 간단한 시계 예제 단계 2: 클래스 Wizard를 이용하여 WM_TIMER 메시지를 선택하고 OnTimer라는 타이머 핸들러 두 개의 타이머 ... 멀티미디어 타이머 설정 (Project Settings- Link) winmm.lib 추가 타이머 관리 멀티미디어 타이머 (Multimedia Timer) 사용하고자 하는 클래스에
// 분할 윈도우 ID ); m_wndSplitter의 ID는 AFX_IDW_PANE_FIRST가 되고, 이 ID를 이용하여 CMainFrame 내부에서 분할해 반복적으로 호출하는 ... 컨텍스트 DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT, UINT nID = AFX_IDW_PANE_FIRST ... SW_HIDE); // 새로 만든 뷰를 감춤 m_pMainView- ShowWindow(SW_SHOW); // 메인 뷰를 보이게 함 m_pMainView- SetDlgCtrlID(AFX_IDW_PANE_FIRST
defined(AFX_POLYNOMIAL_H__A1EED1CD_3D49_4BB8_8FBF_C61E3BD11FB5__INCLUDED_) #define AFX_POLYNOMIAL_H__ ... ~Polynomial(); private: int Finish; // 끝위치 알려주는 변수 int Start; // 시작위치를 알려주는 변수 static int free; // 클래스 ... defined(AFX_POLYNOMIAL_H__A1EED1CD_3D49_4BB8_8FBF_C61E3BD11FB5__INCLUDED_) ======================< Polynomial.cpp
LONG OnAccept(UINT wParam, LONG lParam); // 클라이언트가 접속할 때 afx_msg LONG OnReceive(UINT wParam, LONG lParam ... TRACE( EverSock- Listen(); // 클라이언트의 요청을 기다린다. } 단계 3: 사용자 메시지들이 발생될 때 처리하는 핸들러를 설정한다. // ServerView.h afx_msg ... 인터넷 프로그래밍 윈도우즈 소켓의 개념 MFC는 비동기적 소켓 프로그래밍 클래스 CAsyncSocket과 동기적으로 작동하는 CSocket 클래스를 제공한다.
확장 DLL에서 클래스로 DLL을 만들었다면, 클래스명 선언 앞에 단순하게 AFX_EXT_CLASS를 설정한 후 DLL을 만든다. // DLL class CDLLDlg : public ... CDialog { // 내용 } // DLL 사용 class AFX_EXT_CLASS CDLLDlg : public 과 ExtDLL.lib 파일을 얻는다. ... (정규 DLL은 C) 따라서, 클래스를 라이브러리로 사용하고 호출할 수 있다. 확장 DLL은 MFC 전용으로 DLL을 만들 때 주로 사용한다.
추가된 클래스(CGameDlg Class)와 각 함수 설명
(1). ... (CGameDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 ... 제목바에 띄움
CGameDlg::CGameDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGameDlg::IDD, pParent)
{
//{{AFX_DATA_INIT
Visual C++가 제공하는 MFC는 AFX에 근간을 두고 있어서 지금 도 MFC에는 AFX의 흔적이 남아있다. win32 API들에서 연관된 함수들을 묶어 클래스로 캡 슐화한 클래스 ... AFX 를 수정, 확장한 것이었다. ... 다음으론 상속성이다, 상속이 란 기존에 있는 클래스를 바탕으로 해서 기존 클래스의 특성을 유지하면서 다른 특성을 가 함으로서 클래스를 만드는 방법이다.
Construction public: CExAviViewDlg(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA ... Generic Class타입으로 이름은 CMyVideo 클래스 헤더소스 //myvideo.h //avi 파일 출력 클래스 헤더 class CMyVideo{ public: CMyVideo ... 본 클래스는 AVI 동영상을 로드한 후 화면에 재생하고 이전, 다음 프레임으로, 처음, 마지막으로, 멈춤, 종료와 같은 함수가 있다.
-스레드를 만들기 위해서는 AfxBeginThread()함수를 사용하며 인수로는 스레드의 작업을 수행할 제어함수의 포인터나 CWinThreadzmfotm에서 파생된 개체의 런타임 클래스 ... pParam); 포인터 설정 CProjectName *pDlg; -그 밖의 멀티테스킹 1 크리티컬 ON_IDC_PROGRESS2:NM_OUTOFMEMORY .멤버함수/변수 등록 1클래스위저드 ... (); afx_msg void OnExit(); afx_msg void OnStart(); afx_msg void OnOutofmemo