[MFC강좌] MFC 9가지 배열 사용법(CStringList, CList 등)

[MFC강좌] MFC 9가지 배열 사용법(CStringList, CList 등)


MFC에서 제공하는 배열들은 아래와 같습니다.


Class Name - Data Type


CByteArray : 8-bit bytes (BYTEs)

CWordArray : 16-bit words (WORDs)

CDWordArray : 32-bit double words (DWORDs)

CUIntArray : Unsigned integers (UINTs)

CStringArray : CStrings

CPtrArray : void pointers

CObArray : CObject pointers


CByteArray - 1


[New, Delete]

1
2
3
4
5
6
7
8
CByteArray* pA = new CByteArray;
pA->SetSize( 25 );
 
delete( pA );
pA = NULL;
 
delete(pA);
pA =NULL;
cs

[SetSize, SetAt]


1
2
3
4
5
6
7
8
CByteArray AL;
 
AL.SetSize( 8 );
AL.SetSize( 45 );
 
AL.SetAt( 0100 );
AL.SetAt( 1'A' ); 
AL.SetAt( 1'B' ); 
cs


[SetAtGrow]


1
2
3
AL [2= 102
AL.ElementAt( 3 ) = 103
AL.SetAtGrow( 4104 );
cs


[Add, InsertAt, RemoveAt]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int N;
= AL.Add( 106 );
AL.InsertAt( 51053 );
AL.InsertAt( 5, ALx );
AL.RemoveAt( 52 );
 
= AL.GetUpperBound( );
= AL.GetSize( );
 
BYTE D;
= AL.GetAt( 0 );
= AL [1];
= AL [2];
= AL.ElementAt( 3 );
 
char SS[20];
forint i=0; i<N; i++ )
{ pDC->TextOut( 025*i, _itoa(AL[i],SS,10) ); }
 
AL.FreeExtra( );
AL.RemoveAll( );
cs


[MFC강좌] MFC 9가지 배열 사용법(CStringList, CList 등)


CByteArray - 2


[New, Delete]


1
2
CByteArray* pA1 = new CByteArray;
delete( pA1 );
cs


[SetSize, SetAt, GetAt]


1
2
3
4
5
6
7
8
9
CByteArray AL1;
AL1.SetSize( 2 );
AL1.SetAt( 0100 );
AL1 [1= 200;
 
int N1 = AL1.GetUpperBound( );
BYTE D1;
D1 = AL1.GetAt( 0 );
D1 = AL1 [1];
cs

CWordArray


WORD: unsigned short int


[New, Delete]


1
2
CWordArray* pA2 = new CWordArray;
delete( pA2 );
cs


[SetSize, SetAt, GetAt]


1
2
3
4
5
6
7
8
9
CWordArray AL2;
AL2.SetSize( 2 );
AL2.SetAt( 0100 );
AL2 [1= 200;
 
int N2 = AL2.GetUpperBound( );
WORD D2;
D2 = AL2.GetAt( 0 );
D2 = AL2 [1];
cs


MFC강좌 배열


CUintArray


[New, Delete]


1
2
CUIntArray* pA3 = new CUIntArray;
delete( pA3 );
cs


[SetSize, SetAt, GetAt]


1
2
3
4
5
6
7
8
9
CUIntArray AL3;
AL3.SetSize( 2 );
AL3.SetAt( 0100 );
AL3 [1= 200;
 
int N3 = AL3.GetUpperBound( );
UINT D3;
D3 = AL3.GetAt( 0 );
D3 = AL3 [1];
cs

CDWordArray


[New, Delete]


1
2
CDWordArray* pA4 = new CDWordArray;
delete( pA4 );
cs


[SetSize, SetAt, GetAt]


1
2
3
4
5
6
7
8
9
CDWordArray AL4;
AL4.SetSize( 2 );
AL4.SetAt( 0100 );
AL4 [1= 200;
 
int N4 = AL4.GetUpperBound( );
DWORD D4;
D4 = AL4.GetAt( 0 );
D4 = AL4 [1];
cs


MFC강좌 CStringList


CStringArray


[New, Delete]


1
2
CStringArray* pA5 = new CStringArray;
delete( pA5 );
cs


[SetSize, SetAt, GetUpperBound, GetAt]


1
2
3
4
5
6
7
8
9
10
CStringArray AL5;
AL5.SetSize( 2 );
CString S5("AAA");
AL5.SetAt( 0, (LPCTSTR)S5 );
AL5 [1= "BBB";
 
int N5 = AL5.GetUpperBound( );
CString D5;
D5 = AL5.GetAt( 0 );
D5 = AL5 [1];
cs

CStringList


[New, Delete]


1
2
3
CStringList* pA1 = new CStringList;
delete( pA1 );
CStringList CR1( 5 );
cs


[GetHeadPosition]


1
2
POSITION PS1;
PS1 = CR1.GetHeadPosition( );
cs


[AddHead]


1
2
CString S10("AAA");
PS1 = CR1.AddHead( (LPCTSTR)S10 );
cs


CList MFC 강좌


[Insert, etc...]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
S10 = "abc";
 
CR1.SetAt( PS1, "aaa" );
PS1 = CR1.InsertAfter( PS1, "BBB" );
PS1 = CR1.InsertAfter( PS1, "CCC" );
PS1 = CR1.InsertAfter( PS1, "EEE" );
 
PS1 = CR1.InsertBefore( PS1, "DDD" );
 
PS1 = CR1.AddTail( "FFF" );
 
BOOL B1 = CR1.IsEmpty( );
B=TRUE(1);
 
int N1;
N1 = CR1.GetCount( );
CString D1;
D1 = CR1.GetHead( );
D1 = CR1.GetTail( );
PS1 = CR1.GetHeadPosition( );
D1 = CR1.GetAt( PS1 );PS1 
 
D1 = CR1.GetNext( PS1 );
D1 = CR1.GetNext( PS1 );
D1 = CR1.GetNext( PS1 );
D1 = CR1.GetNext( PS1 );
D1 = CR1.GetNext( PS1 );
D1 = CR1.GetNext( PS1 );
 
PS1 = CR1.GetTailPosition( );
D1 = CR1.GetPrev( PS1 );
D1 = CR1.GetPrev( PS1 );
 
N1 = CR1.GetCount( );
PS1 = CR1.GetHeadPosition( );
 
forint i=0; i<N1; i++ )
{ pDC->TextOut( 0, i*25, CR1.GetNext( PS1 ) );  }
 
PS1 = CR1.FindIndex( 3 );
PS1 = CR1.Find( "CCC" );
 
D1 = CR1.GetAt( PS1 );
PS1 = CR1.Find( "CCC", PS1 );
 
if ( PS1 != NULL )D1 = CR1.GetAt( PS1 );
 
PS1 = CR1.GetHeadPosition( );
CR1.RemoveAt( PS1 );
 
D1 = CR1.RemoveHead( );
D1 = CR1.RemoveTail( );
 
CR1.RemoveAll( );
PS1 = CR1.AddHead( "AAA" ); 
cs

CPtrList


[New, Delete]


1
2
3
4
5
6
CPtrList* pA3 = new CPtrList;
CCR* pLa = new CCR("AAA"100);
PS1 = pA3->AddHead( (CObject *)pLa );
 
delete( pLa );
delete( pA3 );
cs


[InsertAfter, etc...]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CPtrList CR3;
CCR La("AaA"300);
CCR Lb("BbB"301);
CCR Lc("CcC"302);
 
POSITION PS3;
PS3 = CR3.AddHead( &La );
PS3 = CR3.InsertAfter( PS3, &Lb );
PS3 = CR3.InsertAfter( PS3, &Lc );
PS3 = CR3.GetHeadPosition( );
 
CPtrList *pD3;
CString D3_S;
 
int D3_N;
pD3 = (CPtrList *)CR3.GetNext( PS3 );
D3_S = (*(CCR *)pD3).Get_S( );
D3_N = ((CCR *)pD3)->Get_N( );
 
pD3 = (CPtrList *)CR3.GetNext( PS3 );
D3_S = (*(CCR *)pD3).Get_S( );
D3_N = ((CCR *)pD3)->Get_N( ); 
cs


CStringList MFC 강좌


CList


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <afxtempl.h>
#include "CR.h"CCR
 
CList< CCR, CCR& >* pC4 = new CList< CCR, CCR& >(10); 
delete( pC4 );
 
CList < CCR, CCR& >CR4;
CCR Li("Aaa"400);
CCR Lj("Bbb"401);
CCR Lk("Ccc"402);
 
POSITION PS4;
PS4 = CR4.AddHead( Li );
PS4 = CR4.InsertAfter( PS4, Lj );
PS4 = CR4.InsertAfter( PS4, Lk ); 
 
PS4 = CR4.GetHeadPosition( );
 
CCR D4;
CString D4_S;
int D4_N;
 
D4 = CR4.GetNext( PS4 );
D4_S = D4.Get_S( );
D4_N = D4.Get_N( );
 
D4 = CR4.GetNext( PS4 );
D4_S = D4.Get_S( );
D4_N = D4.Get_N( );
 
D4 = CR4.GetNext( PS4 );
D4_S = D4.Get_S( );
D4_N = D4.Get_N( );
cs


CPtrList


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <afxtempl.h>
 
CTypedPtrList< CPtrList, CCR* > *pA5 = new CTypedPtrList< CPtrList, CCR* >;
delete( pA5 );
 
CTypedPtrList< CPtrList, CCR* > CR5;
CCR L50("AAA"500);
CCR L51("BBB"501);
CCR L52("CCC"505);
 
POSITION PS5;
PS5 = CR5.AddHead( &L50 );
PS5 = CR5.InsertAfter( PS5, &L51 );
PS5 = CR5.InsertAfter( PS5, &L52 );
 
PS5 = CR5.GetHeadPosition( );
CCR *pD5;
CString D5_S;
int D5_N;
 
pD5 = CR5.GetNext( PS5 );
D5_S = (*pD5).Get_S( );
D5_N = pD5->Get_N( );
 
pD5 = CR5.GetNext( PS5 );
D5_S = pD5->Get_S( );
D5_N = pD5->Get_N( );
cs


이 글을 공유하기

댓글(0)

Designed by JB FACTORY