Transcript MFC예제1

간단한 MFC 프로젝트 만들기
: 단일 문서(SDI) 기반 프로젝트
1) [파일}[새로 만들기][프로젝트] 선택하여
MFC응용프로그램 마법사 실행
1) 트리 구조를 확장
2) [클래스뷰]탭을 선택하고 오른쪽 마우스 버튼을 누른다.
변수 이름을 m_strWindowSize로 하자.
CString 클래스
함수
GetLength
IsEmpty
Empty
GetAt
SetAt
Compare
MakeUpper
MakeLower
Format
Find
내용
내용
설정된문자의
문자의 길이를
길이를 반환
반환
설정된
현재클래스에
클래스에문자열
문자열버퍼가
버퍼가비었는지
비었는지체크
체크
현재
문자열삭제하여
삭제하여버퍼
버퍼비움
비움
문자열
문자열특정
특정 위치의
위치의 문자값
문자값얻음
얻음
문자열
문자열 특정
특정 위치에
위치에 새
새 문자
문자 넣음
넣음
문자열
문자열과 인자의
인자의 문자열
문자열 비교
비교
문자열과
문자열의 소문자를
소문자를 대문자로
대문자로 바꿈
바꿈
문자열의
문자열 대문자를
대문자를 소문자로
소문자로 바꿈
바꿈
문자열
문자열에형식을
형식을갖추어
갖추어넣음
넣음
문자열에
문자열에서 특정
특정 문자나
문자나 문자열을
문자열을 찾음
찾음
문자열에서
클래스 마법사를 선택하거나
Ctrl + Shift + X
1) [메시지] 탭을 선택하고
3) 처리기 추가를 선택한다.
2) WM_SIZE를 선택하고 더블클릭하여
메시지 핸들러 함수를 추가한다.
더블클릭하고
코드 편집을 눌러
메시지 핸들러 함수로 이동
멤버 함수의 정의
클래스명::함수명
Cview::OnSize
// 윈도우 크기 나타내는 문자열 만듬
m_StrWindowSize.Format(_T(“윈도우 크기는 너비 %d, 높이 %d입니다.), cx, cy);
// 화면 갱신
Invalidate();
타입에 관계없이 출력해주는 매크로
윈도우에 윈도우 크기를 출력하자.
CDC::TextOut(x,y,str)
x : x좌표, y : y좌표, str : 문자열
2) 여기에 다음 소스 코드를 입력한다.
pDCTextOut(10,10, m_strWindowSize);
*pDC : DC(Device Context)
를 가지는 포인터
[클래스뷰]탭을 선택하고 더블 클릭
하면 이 클래스에 포함된 멤버 함수
와 멤버 변수들이 보인다.
1) OnDraw(CDC *pDC) 멤버함수를
선택하고 더블 클릭하면
OnDraw(CDC *pDC) 함수의
소스코드로 이동한다.
프로그램을 실행시킨다.
[빌드] 메뉴에서 빌드를 누른다.
실
행
마우스와 키보드의 동작에 따라 문자열을 출력해보자.
실
행
변수 형식과 변수 이름을 써넣는다.
멤버 변수가 생겼다. 이것을 더블 클릭한다.
왼쪽 마우스 누름에 대한 메시지를 처리하자.
1) 선택하고
코드를 입력한다.
m_strOutText=_T(“왼쪽 마우스 버튼 누름”);
Invalidate( );
오른쪽 마우스에 대한 메시지를 처리하자.
2) 처리기 추가함
 핸들러 함수 추가
1) 선택하고
2) 코드를 입력한다.
m_strOutText=_T(“오른쪽 마우스 버튼 누름”);
Invalidate( );
키보드에 대한 메시지를 처리하자.
2) 처리기 추가함
 핸들러 함수 추가
1) 선택하고
2) 코드를 입력한다.
m_strOutText=_T(“키보드 눌렀습니다.”);
Invalidate( );
마우스 이동과 드래그를 구별하는
멤버 변수 추가하자.
1) 변수 형식을 bool로 한다.
2) 변수 이름을 입력한다.
멤버 변수가 생겼다.
2) 처리기를 추가한다.
2) 코드를 편집한다.
1) 선택하고
If(m_bDrag==TRUE)
{
m_strOutText = _T(“마우스를 드래그하고 있습니다.”);
}
else
{
m_strOutText = _T(“마우스 이동 중입니다.”);
}
Invalidate( );
왼쪽 마우스 UP에 대한 메시지를 처리하자.
1) 선택하고
코드를 입력한다.
m_bDrag=FALSE;
윈도우에 문자열을 출력하자.
2) 소스 코드를 추가한다.
CRect rect;
GetClientRect(&rect);
pDC->DrawText(m_strOutText, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);