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
[28825] Re:[질문]TForm에서 API의 PAINTSTRUCT 구조체사용하는 방법?
김용수 [heredity] 1420 읽음    2004-02-17 02:38
BeginPaint()는 WM_PAINT 메시지가 발생 했을때만 사용해야 하며
이때 다시 그릴 윈도우 영역 정보도 함께 구할 수 있습니다(자세한 것은 도움말을 보세요).

님의 코드가 동작하지 않은 이유는 이미 VCL 내부에서 BeginPaint()를 호출하여
무효화 영역을 구하여 그 정보가 Reset됐기 때문이며, 그로 인해 님이 부른 BeginPaint()에선
페인트 영역이 없는 DC가 구해진 것이 원인으로 추정됩니다(도움말엔 없는 내용이라 확실하진
않군요).

BEGIN_MESSAGE_MAP macro을 이용해서 WM_PAINT를 직접 가로챈 후 BeginPaint()을 두번
사용하는 코드를 작성해 보신 더 확실히 알 수 있을 겁니다.

행복하세요
---------------------------------------

speed 님이 쓰신 글 :
: void __fastcall TForm1::FormPaint(TObject *Sender)
: {
:    HDC hdc;
:     PAINTSTRUCT ps;
:     int x,  y;
:
:     hdc = ::BeginPaint( this->Handle, &ps );
:
:     TextOut( hdc, 10, 30, "AAA", 3 );
:  
:     EndPaint( this->Handle, &ps );
: }
: 위와 같이 하면 Text가 나오지 않구요..
:    HDC hdc;
:     hdc = GetDC(this->Handle);
:
:     TextOut( hdc, 10, 10, "rrr", 3);
:
:     ReleaseDC(this->Handle, hdc);
:
: 이렇게 하면 나오거든요..
: 왜
: PAINTSTRUCT 를 사용하면 다이얼로그에서 text가 써여지지 않는 건지요?

+ -

관련 글 리스트
28815 [질문]TForm에서 API의 PAINTSTRUCT 구조체사용하는 방법? speed 1055 2004/02/16
28825     Re:[질문]TForm에서 API의 PAINTSTRUCT 구조체사용하는 방법? 김용수 1420 2004/02/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.