C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[24190] Re:[질문]WM_Paint 호출시....
임문환 [mhlim] 1273 읽음    2003-02-09 01:26
컴포넌트 내부 이밴트를 그렇게 외부에서 컨트롤하지는 않습니다.
님이 TCustomEdit1 클래스 선언에 하신대로 하구요.
추가로, 선언해둔 매서드의 실체를 정의해야 겠지요.
그러니까, 아래와 같이 합니다.

void __fastcall TCustomEdit1::fncOnPaint(TWMPaint &WMPaint)
{
//이 안에 WM_PAINT 메시지가 왔을 때 할 일을 코딩하면 됩니다.

}


그리고, 이 컴포넌트를 사용하는 쪽에서 WM_PAINT 메시지 발생시 추가 작업을 할 수 있게 하려면 TCustomEdit1 클래스 선언에 아래와 같은 내용을 추가한 후.
fncOnPaint 매서드 내부에서 if(FOnPaint) FOnPaint(this); 와 같이 합니다.

private:
  Classes::TNotifyEvent FOnPaint;

__published:
  __property Classes::TNotifyEvent OnPaint = {read=FOnPaint, write=FOnPaint};



BEGIN_MESSAGE_MAP, VCL_MESSAGE_HANDLER, END_MESSAGE_MAP 매크로에 대해서는 아래를 참조하세요.

Tip'N Tricks 43번
Tip'N Tricks 104번


무대포 님이 쓰신 글 :
: 다음과 같이 TCustomEdit을 상속받아..TCustomEdit1 을 만들었습니다.
:
: class PACKAGE TCustomEdit1 : public TCustomEdit
: {
: protected:
:         void __fastcall fncOnPaint(TWMPaint &WMPaint);
:         BEGIN_MESSAGE_MAP
:         VCL_MESSAGE_HANDLER(WM_PAINT, TWMPaint, fncOnPaint);
:         END_MESSAGE_MAP(TCustomEdit);
:     .....
:
: }
:
: 그런데..
: 폼에서 버튼을 생성하여 버튼을 클릭시
: 아래의 함수가 호출됩니다..
: void __fastcall TForm1::ButtonClick(TObject *Sender)
: {
:    m_CustomEdit = new TCustomEdit1(this);
:    m_CustomEdit->SetOptions(m_bAddress,m_bHex,m_bAscii,m_b48);
:
:    ...????....
:
: }
:
: 그런데..위에서 TCustomEdit1의 SetOptions(TCustomEdit1가 전달 받을 옵션상황)을 전달 한 후
: ...???..  --> 이부분에 어떤 윈도우 함수를 적어야지  위 메세지 맵에 있는 fncOnPaint 가
: 호출 될까여?
: Show , Showing,Invalidate, ....는 동작 않되더군여..
:
:
:

+ -

관련 글 리스트
24187 [질문]WM_Paint 호출시.... 무대포 994 2003/02/08
24190     Re:[질문]WM_Paint 호출시.... 임문환 1273 2003/02/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.