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
[22788] [질문] WM_PAINT 메세지를 이해할 수 없습니다.
4GW [rsaint] 918 읽음    2002-11-22 13:06
TPanel과 같은 컴포넌트를 만들어서 OnPaint이벤트를 추가하려고 합니다.
우선 제 소스를 잠깐 봐주세요


//소스시작=======================
class TCustomHPanel : public TCustomPanel
{
private:
protected:
public:
    __fastcall TCustomHPanel(TComponent* Owner);
__published:
};
//---------------------------------------------------------------------------
class PACKAGE THPanel : public TCustomHPanel
{
private:
protected:
    void __fastcall fncOnPaint(TWMPaint &WMPaint);

   BEGIN_MESSAGE_MAP
       VCL_MESSAGE_HANDLER(WM_PAINT,TWMPaint,fncOnPaint)
       VCL_MESSAGE_HANDLER(WM_ERASEBKGND,TWMPaint,fncOnPaint)
   END_MESSAGE_MAP(TCustomHPanel)

public:
    __fastcall THPanel(TComponent* Owner);
__published:
};
//소스끝=======================

이 상태에서 하나의 폼위에 Panel과 HPanel을 동시에 올려놓고
Spy++로 메세지를 보고 있으면
Panel에는 아무런 메세지가 발생하지 않는 반면
HPanel에는 계속에서 WM_PAINT메세지가 발생합니다.(실행하지 않고 폼디자인때에도 마찬가지입니다.)
저는 Panel처럼 숨겨졌다가 나타날때만(WM_PAINT가 발생할 때만) fncOnPaint를 실행하고 싶은데
메세지가 계속해서 발생하니 프로그램에 부하가 너무 크네요(가끔은 시스템전체가 다운됩니다.)

그래서 WM_NCPAINT이벤트로 처리해보려고 하니까 폼이 숨겨졌다 빠른속도로 나타날때는
HPanel위의 그림이 미쳐 다 그려지지 못하는 현상이 발생합니다.

도와주세요.

+ -

관련 글 리스트
22788 [질문] WM_PAINT 메세지를 이해할 수 없습니다. 4GW 918 2002/11/22
31199     Re:[질문] WM_PAINT 메세지를 이해할 수 없습니다. 하느리 820 2002/11/22
31198     Re:[질문] WM_PAINT 메세지를 이해할 수 없습니다. 하느리 805 2002/11/22
31197     Re:[질문] WM_PAINT 메세지를 이해할 수 없습니다. 하느리 815 2002/11/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.