1. mfc에서 윈도우 메시지를 처리하는 경로 (win api message driven 방식과 비교)
사용자 이벤트 발생(어떤 이벤트가 어디에 발생?)
→
메시지를 잘 지원하지 않는 클래스들의 특징
→ 화면에 잘 보여지지 않는 클래스들(어플리케이션이나 다큐먼트 클래스와 같은 것들)
→ 어떤 클래스를 상속받느냐에 따라 메시지 처리 여부가 결정됨
→ 그렇다면, 메시지를 처리할 수 없는 클래스의 용도는?
App클래스의 용도
App클래스 에서는 주로 어떤것을 작성?
→ 프로그램에 사용되는 환경변수 적용
→ 부모 윈도우 생성
View클래스와 같은 화면을 보여주는 클래스에서 환경변수를 사용하기 위해 App클래스의 환경변수를 가져오는 방법
→ 포인터로 가리킨다.
→ 참조호출
그렇다면, App클래스에 어떻게 선언이 되어있어야 가져다 쓰는 클래스에서 포인터나 참조호출이 가능할 것인가?
생각보다 사용하는 것보다 선언하는 방식이 어렵고 중요하다. 따라서 잘 가져다 쓸 수 있도록 선언을 잘 해야 한다.
abstact, public, static등의 키워드들 중 어떤 것을 이용해서 선언할지를 결정하는 기준은 무엇일까?
정적변수(static)는 변수내의 값을 공유
전역변수는 공간을 공유
MFC에서 연산만 하는 함수는 4개중 어느 클래스에 만드는 것이 좋을까.
→ 새로운 클래스를 만들어서 한다.
만약 기존의 클래스에 집어 넣으면 연산을 이용하기 위해 전체를 불러야 한다.
포인터를 쓰는 경우
→ 가져와야 할 데이터가 너무 클 경우
→ 데이터를 가져올 수 없을 때(ex. OS가 가지고 있는 데이터(DC 등))
WinForm에서 타 클래스 함수 호출하기
1. 클래스 추가
2, 추가된 클래스에 변수 선언 및 초기화
namespace CSharp
{
class Class1
{
public int left;
public int top;
public int right;
public int bottom; // 변수 선언
Class1()
{
left = 100;
top = 200;
right = 300;
bottom = 400; // 초기화
}
}
3. 기존 클래스에 객체 생성하면, 새로만든 클래스의 데이터를 쓸 수 있다.
Class1 csClass = new Class1();
클래스 추가하여 함수생성, int의 합을 double형으로 화면에 출력
mfc나 winapi의 클래스는 전역클래스의 개념
함수를 제공받을 수 있는 곳
C표준라이브러리
win api
mfc클래스
'PROGRAMMING > MFC(C++)' 카테고리의 다른 글
[0407수업] 소켓실습 (0) | 2011.04.07 |
---|---|
[0407수업] 소켓의 이해 (0) | 2011.04.07 |
[0405수업] 사각형/문자 출력, CWnd객체 생성 (0) | 2011.04.05 |
[0401수업[ 윈도우 응용프로그램 개발 환경 (0) | 2011.04.01 |
[0331수업] MFC 클래스의 기능 (0) | 2011.03.31 |