2011-09-12 4 views
0

MFC 대화 상자에서 두 개의 겹치는 텍스트 상자 행 (사용자가 볼 수있는 행은 한 행뿐입니다)이 있습니다. 버튼을 클릭하면 맨 아래 행이 이동하므로 이제 사용자는 두 행을 볼 수 있습니다.텍스트 상자를 클릭하면 배경에서 어떤 일이 발생합니까?

문제는 텍스트 상자에 DoDataExchange()에로드 된 데이터가있는 경우 대화 상자가 부팅 될 때 표시되는 것을 볼 수 없다는 것입니다. 그러나 텍스트 상자 안쪽을 클릭하면 데이터가 표시됩니다.

UI를 클릭했을 때 정확히 무슨 일이 발생했는지 알고 싶습니다. 배경에서 호출되는 드로잉 기능은 무엇입니까? 그래서 나는 내 문제를 고칠 수있다.

감사합니다. ZQ

답변

0

클릭 할 때 아무 것도 그려지지 않습니다. 텍스트 상자를 다시 그려주는 이유로 인해 Invalidate()가 트리거 된 것을 볼 수 있습니다. 또는 부모 컨트롤 (대화 상자, 가정합니다) WS_CLIPCHILDREN 설정되어 있지 않은 또는 다른 재미있는 것들 WS_CLIPXXX 플래그 (그들은 다소 흑인 예술) 일이 있습니다.

요점은 Spy ++를 사용하여 클릭 할 때 '일어나는'사항, 즉 각 시점에 게시되는 메시지를 확인하는 것입니다.

+0

감사합니다. spy ++를 사용해 보겠습니다. 어쨌든 지금 전략을 바꿨습니다. 올바른 위치에 필요할 때 텍스트 상자를 그려 보는 것이 좋습니다. – coderek

관련 문제