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
[60272] Re:부모의 이벤트 확인
장성호 [nasilso] 1353 읽음    2010-02-19 12:42
음..
어떤 Component ( 또는 Control) 을 만들려고 하시는지 궁금합니다.

대부분의 기능은 window-message로 처리됩니다.

그리고 focus를 잃거나 하는것은 parent-control 의 마우스 클릭 이벤트 등을 체크해서 처리하는것이 아닙니다.

windows-system( OS) 에서  mouse-down이 다른 control 위치 에서 발생하면
알아서 이전에 foucs가 있던 control에 WM_KILLFOCUS 메세지 등을 보내줍니다.
새로 focus가 가는 control에는 WM_SETFOCUS 등의 메세지를 보내주는것이구요

system(os)에서 지원하지 않는
보모control과 자식control간에 메세지 교환이 필요하다면 직접  SendMessage / PostMessage등으로 구현하면 되구요

------------------------------------------------------------
참고로 TComboBox는 하나의 윈도우로 구현된 control 이 아닙니다.
3개의 윈도우로 구현된 control입니다.
Form위에 Button을 두개 올리면 그 폼은 3개의 윈도우로 구성된 폼이 되듯이

1. 하나는 화면에 보이는 TComboBox 이구
2. 또하나는 ComboBox에 무엇을 입력할때 Win32-Control인 "EDIT"라는것에 Focus가 가서 입력됩니다.
    "EDIT"에서 키보드 입력을 받아서 화면에 보여주고 , 입력이 끝나면 TComboBox에게 내용을 전해주는것이죠
3. 마지막 하나는 TComboBox의 내용을 dropdown-list로 볼때  화면에 나타나는 윈도우로써
    "ComboLBox" 라는 win32-control이 있습니다.
    이 "ComboLBox"라는 놈도 화면에 내용을 보여주고 마우스/키보드 입력에 따라 선택이 되면
   그 결과를 TComboBox에 전해줍니다.

------------------------------------------------------------
TComboBox에서 dropdown리스트를 보고 있는 상태에서 다른 window나 폼에 mouse-click하였을때는
system(Os)에서  "ComboLBox"에다가  적당한 메세지를 보내줍니다.
WM_CANCELMODE , WM_CAPTURECHANGED 등의 메세지를...
"ComboLBox"에서 그 메세지를 받아서 화면에서 사라지던가 처리하는것이죠
------------------------------------------------------------

그럼...


김형기 님이 쓰신 글 :
: 에디트 컨트롤을 상속하여 사용자 컨트롤을 하나 만들려고 하는데 부모의 이벤트를 확인하려면 어떻게 해야할까요?
: 부모폼과 메세지를 주고받거나 이런게 아니라 컨트롤 내에서 모두 코딩하여 실제로 사용할때는 생성만 해놓으면 원하는 기능이 발현되게 말이죠...
:
: 예를 들면 콤보박스의 경우 아이템들이 드랍다운 된 다음 콤보박스 이외의 다른 컨트롤을 선택한다던지 부모폼을 선택하면 드랍다운된 아이템이 사라집니다. 부모폼을 클릭하면 포커스는 그대로 유지되구요. 이런 기능은 어떻게 구현되었을까요?
:
: 고수님들의 지도편달 부탁드립니다.

+ -

관련 글 리스트
60271 부모의 이벤트 확인 김형기 1021 2010/02/19
60272     Re:부모의 이벤트 확인 장성호 1353 2010/02/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.