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
[10497] Re:MDI 차일드 폼에서 WM_NCHITTEST 메세시가 계속 발생..
박지훈.임프 [cbuilder] 1335 읽음    2001-08-31 15:52
임프랍니다.

원래 폼 위에 커서가 가만히 있는 경우 WM_NCHITTEST 메시지가 발생하지 않습니다. 이 메시지는 커서가
윈도우의 넌-클라이언트(non-client)영역에서 클릭하거나 움직일 경우에만 발생하지요.
그리고 VCL의 경우, Screen->Cursor를 새로 세팅했을 경우에도 발생합니다.
이것은 MDI든 아니든 동일합니다.
그래서, 저도 이상하다 싶어서 샘플 프로젝트를 만들어 테스트해봤습니다.

메시지를 트랩해서 보다가 이유는 알아냈습니다. 폼에 에디트나 메모 같은 캐럿이 껌뻑거리는 컨트롤이
있을 경우에만 그렇습니다. 그것도 완전히 커서가 껌뻑거리는 순간에 발생하더군요.
그래서, 폼 위에 버튼 등 다른 포커스를 가질 수 있는 컨트롤을 놓고, 그 버튼을 클릭해서 활성화시키면
캐럿이 껌뻑이지 않게 되고, 그후엔 메시지가 발생하지 않습니다.

원인을 짐작하기로는.. 에디트의 캐럿이 껌뻑거리는 순간 Screen->Cursor를 아주 잠깐이나마 변경하는 것
같습니다. 앞에서 말했다시피, VCL에서 내부적으로 커서를 다시 세팅하는 동안 WM_NCHITTEST 메시지를
보내게 됩니다.

그럼 이만...


hunters 님이 쓰신 글 :
: 안녕하세요. 오래간만에 질문을 올립니다.
: MDI 차일드 폼에 마우스를 위치해 놓은 상태에서
: 가만히 있는데도, WM_NCHITTEST 메세시가 계속 발생합니다.
:
: 이 메세지가 계속 발생하는 이유하고
: 발생하지 않게 하려면 어떻게 해야 하는 지 궁금합니다.
:
: 감사합니다.
:

+ -

관련 글 리스트
10487 MDI 차일드 폼에서 WM_NCHITTEST 메세시가 계속 발생.. hunters 961 2001/08/31
10497     Re:MDI 차일드 폼에서 WM_NCHITTEST 메세시가 계속 발생.. 박지훈.임프 1335 2001/08/31
10495     Re:MDI 차일드 폼에서 WM_NCHITTEST 메세시가 계속 발생.. 개박살.U&I 1089 2001/08/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.