ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MFC 기초 / 집합 클래스
    쥬신게임아카데미/MFC 2012. 12. 12. 23:15

    CString 객체의 특성

    1. 가변 길이 문자열을 지원한다.

      - 프로그램 실행 중에 문자열 길이를 자유롭게 바꿀수 있다??..

    CRect, CPoint, CSize

     

    CTime 클래스는 절대적인 시간(예를 들면 현재시간)을 처리한다.

    CTime theTime;

    theTime = CTime :: GetCurrentTime(); //현재 시간을 구한다.

     

    @ Sleep()함수는 밀리초 단위 시간을 입력 받아 해당 프로그램을 대기시키는 역활을 한다.

    대기시킬 일이 있을때..for문보다 훨씬 효과적이다.

     

    Sleep(0)은?

    순간 같은 우선순위에 있는 다른 프로그램이 동작한다??....뭔소리래?

     

    집합클래스

    배열클래스

    배열을 생성하는 순서는 다음과 같다.

    1. 배열 객체를 생성한다.

    2. SetSize()함수를 호출하여 크기를 결정

     

    클래스 이름 

    데이터 타입 

    사용 예 

     CByteArray

    BYTE 

     CByteArray array;

     CWordArray

    WORD

    "

     CDWordArray

    DWORD 

    "

     CUIntArray

    UINT

    "

     CStringArray

    CString

    "

     CPtrArray

    void 포인터

    "

     CObArray

    CObject 포인터

    "

    CUIntArray array;

    array.SetSize(10); //배열 크기를 설정함

    for(i=0;i<10;i++)
    array[i] = i*10;

    이런 식으로 사용 가능하다..

     

    배열 원소 삽입과 삭제

    InsertAt(인덱스, 삽입할 내용) 함수로 임의의 위치에 삽입을 가능..

    RemoveAt(인덱스) 함수로 해당 위치의 원소를 삭제..

    배열의 현재 크기는 GetSize() 함수로 얻고..

     

    위에서 제공하지 않는 데이터 타입인 경우 템플릿 클래스를 사용한다.

    CArray

    CArray <CPoint, CPoint&> array; // 사용예..

     

    #include <afxtempl.h> // 선언을 하고..

    struct Point3D{
     int x, y, z;
     Point3D(){}
     Point3D(int x0, int y0, int z0):x(x0),y(y0),z(z0){}
    };

    //모든 멤버가 public일 경우 class 대신 struct를 사용하면 좀 더 편리함.

    CArray<Point3D, Point3D&> array; //객체 생성방법
       array.SetSize(5);

       for(i=0;i<5;i++)
       {
        Point3D pt(i,i*10,i*100);
        array[i]=pt;
       }
       for(i=0;i<5;i++)
       {
        Point3D pt = array[i];
        cout <<pt.x<<","<<pt.y<<","<<pt.z<<endl;
       }

    사용자 정의 데이터 타입을 사용할땐 반드시 기본 생성자를 정의해야한다.

     

    리스트 클래스

    리스트란 데이터를 포인터를 이용하여 연결시킨 자료구조..일반적으로 연결 리스트라는 용어를 사용하지요..

    @ 배열과 달리 원소를 삽입하거나 삭제하는 것이 포인터 조작만으로 가능하기때문에 빠르다.

    하지만..특정위치에 있는 원소를 참조할 때 리스트의 처음 위치에서 시작해서 계속 따라가야하므로..느려지는 단점이 있다.

     

    MFC 제공하는 리스트 클래스는 양방향 포인터를 가지는 이중 연결 리스트이다.

     

    클래스 이름 

    데이터 타입

    사용 예

     CObList

    CObject 포인터

    CObList list;

    CPtrList

    void 포인터

    "

     CStringList

     CString

    "

    1. 리스트 객체를 생성하고

    2. AddHead()함수 또는 AddTail()함수를 호출하여 원소를 추가

    char *string = {"1","2","3"};

    CStringList list;

    for(int i=0;i<5;i++)

    list.AddTail(string[i])

     

    맵클래스

    ...이건 내일..:)

     

     

    '쥬신게임아카데미 > MFC' 카테고리의 다른 글

    AppWizard 분석  (0) 2012.12.13
    맵 클래스와..MFC 전역함수  (0) 2012.12.13
Designed by Tistory.