MFC Template
https://msdn.microsoft.com/ko-kr/library/sa2c737c.aspx
▲ MSDN 참조
● GetFirstDocTemplatePosition()
# 구문
POSITION GetFirshDocTemplate() const;
# 설명
Gets the position of the first document template in the application
첫번째 문서템플릿에서 포지션을 얻어와라
# 반환값
A POSITION value that can be used for iteration or object pointer retrieval; NULL if he list is empty.
반환은 POSITION 형식으로 반복적으로 사용가능하다 혹은 객체의 포인터를 받는다. NULL 일경우에는 비어있다.
# 사용법
Use the POSITION value returned in a call to GetNextDocTemplate to get the first CDocTemplate object.
리턴된 POSTION 형식으로 GetNextDocTemplate 함수를 사용한다. GetNextDocTemplate함수는 첫 CDocTemplate Object위치를 얻는다.
첫 위치를 얻는다는 것이 Template의 첫 위치가 아니라 템플릿의 시작점이다. C--App.cpp 에서 InitInstance() 함수에 보면 템플릿 객체를 생성하고 AddDocTemplate(템플릿 이름) 함수를 호출하는 부분이 있다.
# 필자가 사용하는 법
C---App.cpp
C---App::InitInstance()
POSITION pos = GetFirstDocTemplatePosition(); // 리턴된 값은 템플레이트의 첫 시작위치를 가르킨다.
CDocTemplate *pTemplate;
for(int i =0; i<2; i++) // 여기서 숫자 2는 생성된 템플릿을 뜻한다.
InitInstance() 함수는 ProcessShellCommand 함수 대신에 OnFileNew()함수가 실행된다. 그렇기 때문에 위에서 작성한 코드들은 OnFileNew()함수에 작성하여도 좋다.
● GetNextDocTemplate()
# 구문
CDocTemplate* GetNextDocTemplate(POSITION& pos) const;
# 설명
Gets the document template identified by pos, then set pos to the POSITION value.
문서 템플릿의 식별하는 포지션을 얻어온다. pos는 POSITION 형식이다.
가르키고있는 위치를 다음위치로 넘기겠다는 뜻이다. (첫 위치는 템플레이트의 첫 시작위치)
# 반환값
A pointer to a CDocTemplate object
CDocTemplate 객체 포인터를 리턴한다. CDocTemplate 객체 포인터로 받아야한다.
실제 템플릿을 얻어온다.
MFC MDI에서 초기화면에 탭을 띄우는 프로그램 작성 하기위해 찾고 찾던중.. 정리가 되어있는곳이 없어서 혼자서 정리해보았습니다.
▲ MDI 초기 실행화면
MFC MDI 초기화면시 탭이 2개 기본으로 추가되어있음을 확인할 수 있다.
GetFirstDocTemplatePosition, GetNextDocTemplate, CDocTemplate 를 잘 조합하면 가능하다.
▲ 참조 사이트
iteration :: 반복적
retrieval :: 회수,검색
'훈, IT 공부 > C,C++,MFC' 카테고리의 다른 글
[MFC] MFC 실행순서( 생성 ~ 소멸 ) (1) | 2018.04.30 |
---|---|
[MFC] 각클래스 객체 포인터 얻어오기 (0) | 2018.04.28 |
[C++ STL]vector 백터란 (0) | 2018.04.21 |
[프로그램]강아지와 병아리 ( 다리개수 ) +손코딩연습 (0) | 2018.02.28 |
[C/C++] C++에서의 클래스와(Class) C언어 에서의 구조체 비교해보자 (0) | 2018.01.31 |
댓글