안녕하세요. heredity입니다.
질문 내용 중간 중간에 본인의 사견(?)을 남깁니다. 참조하세요.
공윤경 님이 쓰신 글 :
: 메세지에서 WM_USER+1을 사용하고있지만, 문제가 있으므로 수정해주세요
: (헤더의 BEGINMESSAGE_MAP과 Post Messge등)
: 이것은 고정의 값을정하였을때 사용하는것이므로 , 같은 식의 코딩을 한 다른 소프트웨어가 있으면,
: 오동작 하는 원인이 됩니다.
WM_USER + xxx는 원도 핸들로 구분되므로 일반적으론 메시지가 충돌되는 일은 발생하지 않습니다.
다만 WM_USER + xxx를 사용하는 커먼 컨트롤 등(VCL source중 ComCtrls.PAS 참조)를
상속 받는다면 이 메시지는 충돌 위험성이 높습니다.
또한 RegisterWindowMessage()를 이용하는 방법도 비슷한 값을 자주 사용하는
사람의 습성을 RegisterWindowMessage()에 적용하면 자신이 만든 App.에선
충돌 가능성이 없다고 말할 수 없을 것 같습니다.
하지만 WM_USER을 직접 쓰는 것 보단 좋아 보이는 군요.
: BEGIN_MESSAGE_MAP을 그만사용해주세요.
: WndProc을 사용해 처리해주세요.
WndProc가 MessageMap를 사용하는 것 보다 실행 속도 면에선 유리합니다.
다만 이렇게 하는 경우 가독성이 나빠지므로 갠적으로 MessageMap을
사용할 것을 권장하고 싶습니다.
하지만 중요한 것은 아무리 좋은 방향이라도 Owner나 Manager가 이와는 다른
방향의 요구 한다면.... 어쩌겠어요. 힘없는 자의 설움인데...
: RegisterWindowMessage를 사용하는 부분도 참고해주세요
: ---------------------------------------------------------------------------------------
:
:
:
생략
:
:
: 너무너무 답답하게 질문을 했는데 정말..제가 설명할수있는게 여기까지거든요 ㅠㅠ
: 죄송합니다.
: 그리고 부탁드려요.
행복하세요.
|