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

[5월 18일 3교시] 다이얼로그2

려리군 2009. 5. 18. 11:50

다이얼로그 관련 함수들.

UINT CWnd::GetDlgItemInt(int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE) const;

참고주소 : http://msdn.microsoft.com/ko-kr/library/c7t43w0s.aspx

nID에 확인된 컨트롤의 숫자값을 얻는다.

리턴 : 다이얼로그 아이템의 번역된 숫자값.

nID : 값이 변환될 다이얼로그 박스 컨트롤의 숫자 ID

lpTrans : 번역된 플래그를 얻기 위한 포인터.TRUE면 오류 없고 NULL이면 오류에 관해 경고하지 않는다.

bSigned : 부호가 있는 값을 얻을 것인지 여부. 


void CWnd::SetDlgItemInt(int nID, UINT nValue, BOOL bSigned = TRUE);

참고주소 : http://msdn.microsoft.com/ko-kr/library/ce663faa(VS.80).aspx

nID : 값을 설정할 다이얼로그 박스 컨트롤의 숫자 ID

nValue : 아이템 문자열을 생성하는 데 사용될 정수값.

bSigned : TRUE면 nValue는 부호가 있고 FALSE면 부호가 없다.


int CWnd::GetDlgItemText(int nID, CString& rString) const;

참고주소 : http://msdn.microsoft.com/ko-kr/library/xcws9sbs(VS.80).aspx

리턴 : 버퍼에 복사된 문자의 개수.

nID : 문자열을 얻게 될 컨트롤의 숫자 ID

rString : CString의 참조


void CWnd::SetDlgItemText(int nID, LPCTSTR lpszString);

참고주소 : http://msdn.microsoft.com/ko-kr/library/493w3x6d(VS.80).aspx

윈도우나 다이얼로그 박스에 의해 소유된 컨트롤의 문자열을 설정한다.

nID : 설정될 컨트롤의 숫자 ID

lpszString : 컨트롤로 복사될 텍스트를 포함하는 null종료 문자열이나 CString 객체


virtual INT_PTR CDialog::DoModal( );

참고주소 : http://msdn.microsoft.com/ko-kr/library/619z63f5(VS.80).aspx

모달 다이얼로그 박스를 실행하고 마쳤을 때 다이얼로그 박스의 결과를 리턴한다.

리턴 : CDialog::EndDialog 멤버 함수에 의해 통과된 nResult 파라미터 값. -1 혹은 IDABORT를 리턴하면 다이얼로그 생성 실패.


뷰에서 재정의 함수

virtual void CView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);

뷰가 활성화되거나 비활성화 될 때 프레임워크에 의해 호출된다.

bActivate : 뷰가 활성화 되었는 지 비 활성화 되었는지를 나타낸다.

pActivateView : 활성화된 뷰의 객체 포인터

pDeactiveView : 비활성화된 뷰의 객체 포인터.

※ 모달 다이얼로그가 사라질 때 뷰가 활성화 되므로 이 함수를 뷰에서 재정의한다.


Form View

모달리스 다이얼로그의 특성을 지님. DDX/DDV 지원. 리소스 연결됨.

응용프로그램 마법사(AppWizard)에서 다음처럼 기본클래스 부분을 CFormView로 설정하면 된다.



스크롤바 관련 함수

void CScrollBar::SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw = TRUE);

참고주소 : http://msdn.microsoft.com/ko-kr/library/15zh6hdz(VS.80).aspx

주어진 스크롤 바의 최소 및 최대 위치 값을 설정한다.

nMinPos : 스크롤바의 최소 위치값

nMaxPos : 스크롤바의 최대 위치값

bRedraw : 변화를 반영하기 위해 스크롤 바를 다시 그려져야 할 지 여부.


int CScrollBar::SetScrollPos(int nPos,  BOOL bRedraw = TRUE);

참고주소 : http://msdn.microsoft.com/ko-kr/library/fktc3769(vs.80).aspx

스크롤 바의 위치를 nPos로 설정한다. 

리턴 : 성공시 이전 스크롤 박스의 위치. 실패시 0

nPos : 스크롤 박스의 새로운 위치를 지정한다. 이 값은 스크롤 범위 안에 있어야 한다.

bRedraw : 변화를 반영하기 위해 스크롤 바를 다시 그려져야 할 지 여부.


int CScrollBar::GetScrollPos( ) const;

참고주소 : http://msdn.microsoft.com/ko-kr/library/xdy42tcz(VS.80).aspx

스크롤바의 현재 위치를 얻는다.

리턴 : 성공시 스크롤 바의 현재 위치. 실패시 0


스크롤바 관련 메세지

http://www.winapi.co.kr/win32lec/lec7/lec7-5-1.htm


실습9 첨부파일

실습9.zip


실습9.zip
0.1MB