2010-04-11 5 views
4

CComboBox의 파생어에 대한 사용자 지정 드롭 다운을 만들려고합니다. 드롭 다운은 캘린더 컨트롤에 몇 가지 '핫스팟'을 더한 것입니다. CComboBox 사용자 지정 드롭 다운

Image Hosted by ImageShack.us http://img59.imageshack.us/img59/394/calctrl.png

그래서 나는이 달력 컨트롤에 부모 역할을하는 간단한 CWnd 유도 된 클래스를 가지고있다 달성하는 가장 좋은 방법을 파악하고,이 핫스팟 자체 페인트있다.

창이 잘리지 않아야하기 때문에 창은 팝업 창이 될 필요가 있습니다. 하지만이 최상위 (? 전경) 창을 그만하기 (콤보 상자 컨트롤이 배치되는) 대화 상자가 발생하고, 그 프레임에 선도 다르게 그려지 :

alt text http://img693.imageshack.us/img693/3474/35148785.png

이 드롭 다운 있다는 환상을 전리품 이 시점에서 모달 대화 상자처럼 행동하기 때문에 콤보 박스의 일부입니다. 일반 드롭 다운과 같이 동작하는 사용자 지정 드롭 다운을 만드는 방법에 대한 제안 사항은 무엇입니까?

주의해야 할 다른 함정이 있습니까? 예 : 포커스 및 마우스 캡처 문제?

답변

0

팝업 창을 만들 때 해당 소유자를 지정해야합니다. 소유 한 팝업 창이 활성화되면 소유자가 활성화됩니다. 소유자를 지정하지 않으면 창이 활성화되어 표시되는 소유자가 변경됩니다.

+0

답변 해 주셔서 감사합니다. CreateEx 호출에서 드롭 다운 창의 '부모'로 콤보 상자를 전달합니다. 드롭 다운 창이 표시되면 대화 상자의 프레임이 변경됩니다. SetOwner를 명시 적으로 호출해도 아무런 차이가 없습니다. – WalderFrey

0

예. 한 번이 문제가있었습니다. 빠른 Google은 CreateWindowEx()를 사용하고 WS_EX_NOACTIVATE를 지정하여이를 해결했다고 의심합니다. 나는 WS_EX_TOOLWINDOW를 사용하여 팝업 윈도우가 아닌 동일한 효과를내는 다른 코드를 가지고있다. 그러나 왜 그렇게했는지는 모르겠다. 내 직감은 팝업 창을 만드는 것이 잘 했어.

관련 문제