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
[8130] Re:Panel위에 다른 컴포넌트가 있을 때 Click 이벤트 잡는 방법?
방태윤 [nabty] 1614 읽음    2001-06-12 00:03
아래와 같이 해보시기 바랍니다.
Application->OnMessage 를 사용하여 적당히 원하는 결과를 만들어 봤습니다.

Msg.hwnd==Panel1->Handle 부분과 Handled = true 를 적절히 사용하면 버튼클릭도 잡아내더군요.

void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
  if (Msg.message == WM_LBUTTONDOWN && Msg.hwnd==Panel1->Handle)
  {
    POINT p;
    GetCursorPos(&p);
    if(PtInRect(&(Panel1->ClientRect),Panel1->ScreenToClient(p))){
      Panel1Click(Panel1);
    }
    Handled = true;
  }
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Application->OnMessage = AppMessage;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1Click(TObject *Sender)
{
  ShowMessage("click");
}
.끝.

이돈진 님이 쓰신 글 :
: 하나의 패널위에 여러개의 다른 컴포넌트가 있습니다.
:
: 예를 들면 이미지, 라벨과 같은 것들이 있을 때..
:
: 이미지 위에서 마우스를 클릭하면 이미지의 클릭에 대한
:
: 이벤트가 발생하는데,,이걸
:
: 패널에 대한 이벤트가 발생하게 할 수 없나요?
:
: 무식한 방법으로 하면 이미지의 클릭이벤트에서 다시
:
: 패널의 이벤트를 불러주면 되겠지만,,,
:
: 베벨이 있는 경우는 그거 마저도 안되더라구요..
:
: 베벨은 클릭 이벤트가 없기 땜에...
:
: 이럴 때 패널위에 있는 모든 것들을 클릭할 때
:
: 패널의 클릭이벤트가 동작하는 방법좀 가르쳐 주시기를....
:
: 그럼 이만..

+ -

관련 글 리스트
8088 Panel위에 다른 컴포넌트가 있을 때 Click 이벤트 잡는 방법? 이돈진 1392 2001/06/09
8130     Re:Panel위에 다른 컴포넌트가 있을 때 Click 이벤트 잡는 방법? 방태윤 1614 2001/06/12
8101     Re:Panel위에 다른 컴포넌트가 있을 때 Click 이벤트 잡는 방법? 수야 1448 2001/06/11
8104         Re:Re:Panel위에 다른 컴포넌트가 있을 때 Click 이벤트 잡는 방법? 이돈진 1440 2001/06/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.