컴퓨터 공부/MFC 프로그래밍

[5월 19일 2교시] 모달리스 다이얼로그

려리군 2009. 5. 19. 10:27

모달리스 윈도우

생성

new 연산으로 힙 영역에 메모리 할당

 - 모달리스의 연산은 비동기다.

 - 그래서 다이얼로그를 활성화 할 때 더 안정적인 메모리에 할당해야 한다.

Create() -> ShowWindow()

파괴

1. 윈도우의 내부 구조를 파괴해야 한다.

2. DestroyWindow()호출

3. 모달리스 다이얼로그를 지우지 않으면 메모리 누수가 발생할 것이다. 

PostNCDestroy()에서 delete this; 호출

※ PostNCDestroy는 모달리스 윈도우가 파괴된 직후 호출된다.

※ DestroyWindow()와 "delete"를 명시적으로 써줘야 한다.


윈도우 공통 컨트롤

Progress Bar : 작업 진행 상태 표시

Slider : 스크롤바와 동일한 기능

Spin : buddy와 함께 동작

 - autobuddy = true

 - tab order에서 buddy 컨트롤을 spin의 바로 앞 순서로 설정한다.

Animate : AVI Clip을 재생.

 - 관련함수

BOOL CAnimateCtrl::Open(LPCTSTR lpszFileName);

BOOL CAnimateCtrl::Open(UINT nID);

참고주소 : http://msdn.microsoft.com/en-us/library/dh80t8bf(VS.80).aspx

AVI 클립을 열고 첫번째 프레임을 보여주기 위해 이 함수를 호출한다.

리턴 : 성공시 TRUE 실패시 FALSE

lpszFileName : AVI 리소스 이름이나 AVI 파일 이름을 포함한 문자열의 포잍너.

만약 NULL이면 이전에 열었던 에니메이션 컨트롤을 닫는다.

nID : AVI 리소스 아이디. NULL이면 이전에 열었던 에니메이션 컨트롤을 닫는다.


BOOL CAnimateCtrl::Play(UINT nFrom, UINT nTo, UINT nRep);

참고주소 : http://msdn.microsoft.com/en-us/library/a79sdw2w(VS.80).aspx

에니메이션 컨트롤에서 AVI 클립을 재생한다.

리턴 : 성공시 TRUE 실패시 FALSE

nFrom : 재생을 시작할 프레임의 0으로 시작하는 인덱스값. 65536보다 작아야 함. 0의 뜻은 AVI 클립의 첫번째 클립으로부터 시작한다는 뜻이가.

nTo : 재생을 끝낼 프레임의 0으로 시작하는 인덱스 값. 65536보다 작아야 한다. -1의 뜻은 AVI 클립의 마지막 프레임을 뜻한다.

nRep : AVI 클립을 다시 보기 위한 회수. -1이면 무한 반복한다.


BOOL CAnimateCtrl::Stop();

참고주소 : http://msdn.microsoft.com/en-us/library/sy67y62s(VS.80).aspx

에니메이션 컨트롤에서 AVI 클립의 재생을 멈춘다.

리턴 : 성공시 TRUE, 실패시 FALSE