블로그는 귀차니즘

First Sensation
  • 공지
  • 지역로그
  • 태그
  • 방명록

Child Window Mouse Message 문제.

Programming Tip 2008/07/01 23:17 귀차니스트
  이런 문제를 한 번쯤 겪어보셨을지 모르겠습니다. 필요에 의해서 프로그래밍을 하다 보니 이런 경우가 생기더군요. MDI Window를 쓰지 않고, 해당 윈도우를 Mdi Child화 비슷하게 사용하는 것이죠. 그래서 이 구현으로 인해 다이얼로그를 2개 만들고 하나의 다이얼로그 윈도우의 부모를 다른 하나의 다이얼로그로 지정해 주었습니다. 그랬더니 자식으로 설정된 다이얼로그에 존재하는 컨트롤에 키보드나 마우스 메시지가 전달되지 않더군요. 물론 기본적으로 생성할 경우에 그렇습니다.



Parent.cpp (Language : cpp)
  1. abc.Create(IDD_DIALOG, this);
  2. abc.SetParent(this);
  3. abc.ShowWindow(SW_SHOW);

  바로 위와 같은 경우를 만들 경우 빨간 사각형으로 강조된 컨트롤이 반응하지 않게 됩니다. 아예 키보드를 누르나 마우스를 누르나 동작하지 않는 것이죠. C# 에서는 입력은 되지만 마우스 메시지가 제대로 먹지 않더군요. 마우스 메시지가 잘 먹지 않는다면 해당 윈도우에 대한 텍스트 선택, 편집 작업이 무척 불편하게 됩니다. 그래서 이런 저런 해결방법을 찾아봤습니다. 결국 하나의 방법이 나오긴 하더군요.



  잘 보이지는 않지만 해당 자식 Dialog의 Border를 None으로 설정해주시면 됩니다. 이렇게 하면 결국 메시지가 제대로 전달되고 작동되더군요. Control 자체를 작성하는 경우도 존재하기 때문에 기본 WndProc 에서 Border에 따른 처리를 하는 것 같더군요.



  제대로 작동 되는 군요. 물론 여기서 내부 다이얼로그 박스가 윈도우 처럼 작동하기 위해서는 WM_NCHITTEST 등의 메시지를 처리하거나, MOUSEDOWN, MOUSEUP, MOUSEMOVE등의 작업을 수동적으로 제어하여 윈도우의 위치를 이동해주어야 합니다. 약간 번거롭긴 하네요.
  따로 해결할 수 있는 방법이 있는지는 모르겠지만 제가 찾은 방법은 이것이더군요. 무난하게 작동하긴 하니 뭐 별 문제는 없습니다. 하지만 혹시 더 좋은 방법이 있음 댓글로 달아주셨으면 합니다.
  그럼 내일도 즐거운 하루 되시길 바라면서 좋은 꿈 꾸세요^^.
크리에이티브 커먼즈 라이센스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

"Programming Tip" 분류의 다른 글

OpenMP 라고 아십니까?? (0)2008/07/27
심심해서 구현해본 그래픽 요소 (0)2008/07/03
버퍼 오버플로우, 오버런이란?? (0)2008/04/27
GDI+ 사용 시 Smart Pointer 란?? (0)2008/04/12
Com Library in C++ Builder - C++ 빌더에서 Com 라이브러리, .Net라이브러... (0)2008/03/29
2008/07/01 23:17 2008/07/01 23:17
TAG Dialog, Mouse Message, Parent
받은 트랙백이 없고, 댓글이 없습니다.

트랙백 주소 :: http://www.filewiki.net/tc/trackback/84

댓글을 달아 주세요

◀ 이전페이지 1 ... 24 25 26 27 28 29 30 31 32 ... 110 다음페이지 ▶

블로그 이미지
First Sensation 귀차니스트
rss
  • 관리자
  • 글쓰기

카테고리

  • 전체 (110)
    • Computer (3)
    • Language (14)
    • Reverse Engineering (1)
    • Algorithm (9)
    • TopCoder (3)
    • Library (2)
    • Programming (19)
    • Programming Tip (9)
    • PSP-Programming (10)
    • Program (5)
    • Small Talk (31)
    • Document (4)

최근에 올라온 글

  • Gradient 작성중에 있습.... (3)
  • 게임&인터랙티브 애플리....
  • 한게임 자동테트리스 Ve.... (24)
  • Intel 64 And IA32 Arch.... (2)
  • 한게임 자동테트리스 Ve.... (24)

최근에 달린 댓글

  • 다운어덯게 받아요. difl 2008
  • 멋있네요 ㅎㅎ. 준호씨 2008
  • ^^; 그러셨군요.. 사실 동영.... 귀차니스트 2008
  • ㅋㅋ 속도 튜닝의 무서움 ㅜ.... 귀차니스트 2008
  • 관리자만 볼 수 있는 댓글입.... 비밀방문자 2008

달력

«   2009/01   »
일 월 화 수 목 금 토
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

링크

  • kkamagui 프로그래밍 세상.
  • 류광의 번역 이야기.
  • 서광열의 프로그래밍 언....
  • 준호씨의 블로그.
  • 최익필의 이름없는 블로그.
  • 위키는 귀차니즘.

최근에 받은 트랙백

  • 궁극의 예외처리. 이름없는 블로그 2008
  • Maximum sum. 티스토리 지점 2008

글 보관함

  • 2008/12 (1)
  • 2008/11 (4)
  • 2008/10 (2)
  • 2008/09 (3)
  • 2008/08 (5)

태그목록

  • Codejock
  • 보안
  • High Precision Event Timer
  • Chaos
  • TTF
  • 참조
  • OS
  • iterator_traits
  • ostreambuf_iterator
  • Logitech
  • As 형 변환
  • Dialog
  • FreeType
  • Reflection
  • 탑코더
  • boost
  • Newline
  • 버퍼 오버플로우
  • Contest
  • AppWizard
  • ++i
  • 쉘
  • Run Length
  • Borland
  • Code
  • OpenMP
  • COM
  • 램
  • Reverse Engineering
  • 병렬처리

지역로그 : 태그 : 방명록 : 관리자 : 글쓰기
귀차니스트’s Blog is powered by Textcube 1.7.5 : Risoluto / Designed by DesignNia.net