|
Deactivate이벤트가 발생하려면...
먼저 알아야 할것은?
Deactivate이벤트는 TScreen객체에서 발생시켜주는 메세지입니다.
즉 시스템(윈도우)에서 보내주는 메세지가 아니라는것입니다.
그리고 확인사항1
님께서 원하시는것이 ComboBox에 DropDown 되었을때 보여주는 윈도우같은것이라면...
1. 같은 application에서 다른 폼을 클릭했을때 DropDown된 폼은 close되어야 할것이구
2. DropDown폼이 Show된 상태에서 다른 프로그램을 선택했을때도 close되어야 할것입니다.
그러기 위해선..
1. 먼저 "정성훈.해미"님에 제시한 방법을 그대로 쓰구요
( Deactivate와 KeyPress이벤트...)
2. Form을 ShowModal로 띄우지 마시고 Show로 띄우세요
그래야 같은 application에서 다른 폼을 클릭했을때 Deactivate이벤트가 발생합니다.
3. 마지막으로 다른 application을 클릭했을때 close하려면
WM_ACTIVATEAPP 메세지를 잡아서요 wParam이 0 인 경우에 close해주시면 되네요
이 메세지가 application이 active=false되었다는 메세지입니다.
그럼..
방태윤 님이 쓰신 글 :
: Deactive 가 아니라 Deactivate 이벤트 말씀하신거죠?
:
: 폼의 외부의 영역을 마우스로 눌러도 Deactivate 이벤트는 발생되지 않는것 같습니다.
:
: KeyPress 이벤트는 잘 동작 되는데...
:
: 암튼 답변 감사합니다. 수고하세요 .^^.
:
:
: 정성훈.해미 님이 쓰신 글 :
: : ShowModal로 띄운 폼의 Deactive이벤트와 KeyPress이벤트를 이용해 보세요.
: :
: : Deactive이벤트에 Close();
: :
: : 그리고
: : KeyPress 이벤트에서 Key값이 ESC이면 Close();
: :
: :
: :
: :
: : 방태윤 님이 쓰신 글 :
: : : 안녕하세요.?
: : :
: : :
: : : 제가 하려는 작업은,..
: : :
: : : 버튼을 누르면 form 을 showmodal 로 띄어서 뭐뭐 작업을 한후 close 되면 다음 작업을 하려고 합니다.
: : :
: : : 그런데 문제는 showmodal 로 띄운 폼에 있는 ... close 버튼으로 종료를 하는 경우도 있지만,,,
: : :
: : : 제가 띄운 폼의 외부의 영역을 ... 마우스로 클릭한 경우에도 폼이 close 되게 하고자 합니다. (또는 ESC 를 누른걍우)
: : :
: : :
: : :
: : : 사실은 콤보박스 같은걸 만들려고 합니다. ▼ 를 누르면 창이 뜨고 거기에 제 맘대로 draw 하고 했으면 하는데...
: : :
: : : 정석적인 방법이 있는지요?
: : :
: : :
: : : 읽어 주셔서 감사합니다.^^.
|