|
안녕하세요
간단하게 함 만들어 봤습니다
보시고 참조하세요...
글구 TPaintBox는 TGraphicControl을 상속받았기 땜시 윈도우 핸들이 없습니다
윈도우 핸들이 필요하시면 TWindControl을 상속받아서 다시 작성하셔야 겠죠..^^
하지만 GraphicControl이라고 핸들이 없어서 메시지를 받지못하는건 아닙니다.
원칙적으로는 못받겠지만 메시지 주고 받는 부분을 자신의 Parent에게 위임해서 처리하게 되는거죠
그럼 참조하세요...
아더 님이 쓰신 글 :
: 안녕하세요. 이곳에서 많은 도움을 받고 있는 사람입니다. 올초만해도 왕초보였는데,
: 여러 님들의 도움으로 이젠 초보의 길로 들어선것 같습니다. 빌더에 빠져들 수록
: 그 막강함에 놀라면서도 제자신의 부족함을 더욱 더 느끼게 되는것 같습니다.
: 이번에도 혼자 해결하기에는 너무 벅이차서 이렇게 질문을 올림니다.
: 제가 지금 짜는 프로그램은 폼에 PaintBox 몇개를 배치한다음 각 PaintBox에
: 웨이브 파일의 시간파형, 주파수 파형, 위상 파형을 전시하는 프로그램인데,
: 마우스가 각 전시창에 위치할 경우 그창에서의 마우스의 위치에 해당하는
: 지점의 정보를 표시해주고자 합니다.
: (예: 마우스가 주파수 전시창(PaintBox)의 2kHz에 상응하는 곳에 위치하고 그곳에서의
: 주파수 값이 8dB일 경우 (2kHz, 8dB)로 표시))
: 그런데 문제는 마우스가 어느한 창에서 움직일때는 잘 작동하는데, 어느창에서 빠져나간다든가
: 하니면 어느창에 마우스가 진입할때를 인식하지 못해 몇가지 문제가 발생하고 있습니다.
: PaintBox에는 OnMouseMove 이벤트는 있으나, CM_MOUSEENTER, CM_MOUSELEAVE 에
: 해당하는 이벤트가 없어서 해결이 쉽지 않습니다.
: 그래서 TPaintBox 를 상속받아 CM_MOUSEENTER 메시지를 받을 수 있는 컴포넌트를
: 생성하려고 하는데, 처음해보는 거라 계속 실패만 하고 있습니다.
: 벌써 일주일째 매달리고 있는데도 잘 안되네요.....
: 고수님들의 많은 도움 부탁드리겠습니다. 도움이 될만한 소스를 첨부해주시면
: 더욱 감사하겠습니다.. 그럼 좋은 하루 되세요...
:
: 참, 그리고 "TPaintBox 는 윈도우 컨트롤을 상속한게 아니기 때문에 윈도우 핸들이 없고
: 따라서 윈칙적으론 윈도우 메시지를 받을 수 없다, 그래서 폼이 메시지를 대신.....이러이러하게 한다"는 임프님의 글을 봤는데, 이 부분도 자세한 설명 좀 부탁 드리겠습니다
: (제가 초보라 이해가 좀 잘 않 돼서....)
:
|