C++ Builder 기초

2009. 8. 19. 16:27언어/C++ Builder

C++ Builder 에는 비주얼 컴포넌트 라이브러리(VCL) 와 Borland 크로스 플랫폼 컴포넌트 라이브러리(CLX)가 포함 되어 있다.

VCL은 Windows 개발에 사용 되고, CLX는 Windows와 Linux 모두의 크로스 플랫폼 개발에 사용.

컴포넌트는 VCL이나 CLX의 부분 집합이며 추상 클래스인 TComponent의 자손입니다. 대부분의 컴포넌트는 런타임 시

보이는지 여부에 따라 비주얼 컴포넌트이거나 넌비주얼 컴포넌트로 나뉘어진다.

 

중요한 기본 클래스

클래스

설명

TObject

VCL이나 CLS에서 모든 클래스의 기본 클래스이며 최고 조상.

객체의 인스턴스 생성, 유지 보수 및 소멸과 같은 기본 기능을 수행 VCL/CLX의 모든 객체에 공통되는 기본 동작을 캡슐화.

Exception

예외와 관련된 모든 클래스의 기본 클래스를 지정.

TPersistent

속성을 구현하는 모든 객체에 대한 기본 클래스를 지정. 데이터를 스트림에 보내는 것을 처리하고, 클래스의 할당을 허용

TComponent

TApplication과 같은 모든 넌비주얼 컴포넌트에 대한 기본 클래스를 지정. 모든 컴포넌트의 조상.

컴포넌트가 다른 컴포넌트를 소유 할 수 있으며, 컴포넌트를 폼에서 직접 처리 가능

TControl

런타임에 보이는 모든 컨트롤에 대한 기본 클래스를 나타냄. 비주얼 컴포넌트의 조상. 마우스 동작에 대한 이벤트를 제공

TWinControl

모든 사용자 인터페이스 객체의 기본 클래스를 지정합니다. 키보드 입력을 캡처할 수 있는 윈도우 컨트롤

 

예제)

윈도우 메시지를 직접 처리해서 마우스오버시에 캡션이 바뀌는 것.

(Unit1.cpp)

void __fastcall TForm1::CMMouseEnter(TMessage &Message)

{

this->Caption = "hi";

}

void __fastcall TForm1::CMMouseLeave(TMessage &Message)

{

this->Caption = "Die";

}

CMMouseEnter나 Leave 함수를 불러와 각각 캡션에 'hi', 'Die'를 넣어준다.

(Unit1.h)

BEGIN_MESSAGE_MAP

MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, CMMouseEnter)

MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave)

END_MESSAGE_MAP (TForm)

 

MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave)

MESSAGE_HANDLER(처리할 메시지, 메시지 타입, 메시지 핸들러)

 

Sysmac.H에 다음과 같이 정의가 되어있다.

#define MESSAGE_HANDLER VCL_MESSAGE_HANDLER

#define VCL_MESSAGE_HANDLER(msg,type,meth) \

case msg: \

meth(*((type *)Message)); \

break;

 

///*참고*//////////////////////////////////////////////////////////////////////////////////////////

CM_MOUSELEAVE는 Control Message로 CM_으로 시작한다. VCL 자체 그 메시지이다.

CMMouseEnter 는 메시지 핸들러이다. 밑줄을 제거하고 대소문자 구분한다. VCL의 관습.

////////////////////////////////////////////////////////////////////////////////////////////////////