Windows/MFC

01. 윈도우 프로그래밍의 이해

Ohjeonghak 2013. 6. 18. 15:44
반응형

 

 Microsoft Foundation Class Library (MFC)

 

 

 

 

 

위 사진은 MFC 구조 계층 사진이며 마이크로 소프트사의 홈페이지 에서 받을 수 있다.

 

 

MFC_Hierarchy_Chart1of3.pdf

 MFC_Hierarchy_Chart2of3.pdf 

 MFC_Hierarchy_Chart3of3.pdf 

 

 

 

▣ MFC의 특징

  • 그래픽 환경
    -도스의 텍스트 모드에서 윈도우의 그래픽 모드로 변경.

  • 마우스 입력
    -도스에서는 키보드로만 입력이 가능했지만, 윈도우에서는 마우스로도 입력이 가능하다.

  • 멀티 태스킹
    -여러 개의 프로세스를 동시에 실행 할 수 있게 되었다.

  • 장치에 무관하게 프로그램이 실행
    -시스템에 장착된 장치에 무관하게 프로그램을 실행 할 수 있다.

  • 메시지 드리븐(Message-driven)방식
    -도스의 순차적 실행방식이 아니라 사용자 요구에 반응하는 메시지 기반 방식이다.

 

▣ 윈도우 프로그래밍의 기초

  • 프로그램의 시작점 WinMain() 함수
    -도스 프로그램의 시작점은 main()함수 이다. 그리고 반드시 소문자를 사용 한다. 하지만
     윈도우 프로그램의 시작점은 WinMain()함수 이다. 대소문자를 구분하여 사용한다.

    -WinMain()의 정의

    int WINAPIWinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR IpCmdLine,
    int nCmdShow)
    
  • 타입 재정의 (Type Overriding)
    -윈도우 프로그래밍의 인수 타입들은 새로 도입한 것이 아니라 기존의 것을 재정의한 것이다.

    -재정의한 타입

     자 료 형

    의 미 

     BYTE

     unsigned char 형과 같다.

     WORD

     unsigned short 형과 같다.

     DWORD

     unsigned long 형과 같다.

     LONG

     long 형과 같다.

     LPSTR

     char* 형과 같다.

     BOOL

     정수형이며 TRUE 혹은 FALSE

     

  • Win32 API 프로젝트 만들기 (Microsoft Visual Studio 2012 를 기준으로 작성 함.)
    -간단한 메시지 박스 띄우기.

    Step 1. 먼저 새 프로젝트 만들기를 한다. 
               MFC를 선택해서 MFC 프로젝트를 생성 하지만 Win32 API로 프로젝트를 생성하여 어떻게 메시지 
               박스를 띄우는지 기본적인 사항을 알아보도록 하겠다.



    Step 2. 다음 그림과 같이 응용 프로그램 종류 카테고리 선택 후 단일문서를 선택 하고 마침을 클릭 한다.



    Step 3. 소스 파일에 그림과 같이 새 항목으로 cpp 파일을 생성 해 줍니다.


  • Win32 코드 작성하기
    - MsgOutput.cpp 소스내용

    #include <windows.h>
    #include <tchar.h>
    
    int APIENTRY WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR IpCmdLine,
    int nCmdShow)
    {
    MessageBox(NULL, _T("Hellow Kuroi~!!"), _T("메세지"), MB_OK);
    return 0;
    }
    
    



    - 컴파일 결과 화면



  • 윈도우 프로그램의 기본 구조

WinMain()
{
//윈도우 클래스 만들기
//윈도우 객체 생성하기
//윈도우 객체 화면에 띄우기
//메시지 루프 돌리기
}
WinProc()
{
//전달된 메시지 처리하기
}

 

 

* 본 개시물의 프로젝트 파일은 아래에서 다운로드 할 수 있습니다.

 

 MsgOutput.zip

 

 

 

반응형