PropertyGridMonthCalCtrl.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // PropertyGridMonthCalCtrl.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "PropertyGridMonthCalCtrl.h"
  5. #include ".\propertygridmonthcalctrl.h"
  6. // CPropertyGridMonthCalCtrl
  7. IMPLEMENT_DYNAMIC(CPropertyGridMonthCalCtrl, CMonthCalCtrl)
  8. CPropertyGridMonthCalCtrl::CPropertyGridMonthCalCtrl()
  9. {
  10. }
  11. CPropertyGridMonthCalCtrl::~CPropertyGridMonthCalCtrl()
  12. {
  13. }
  14. BEGIN_MESSAGE_MAP(CPropertyGridMonthCalCtrl, CMonthCalCtrl)
  15. ON_WM_KILLFOCUS()
  16. ON_NOTIFY_REFLECT(MCN_SELECT, OnMcnSelect)
  17. ON_WM_GETDLGCODE()
  18. ON_WM_KEYDOWN()
  19. END_MESSAGE_MAP()
  20. // CPropertyGridMonthCalCtrl message handlers
  21. void CPropertyGridMonthCalCtrl::OnKillFocus(CWnd* pNewWnd)
  22. {
  23. CMonthCalCtrl::OnKillFocus(pNewWnd);
  24. CWnd* pParent = pNewWnd ? pNewWnd->GetParent() : NULL;
  25. if (pParent != this)
  26. DestroyWindow();
  27. }
  28. void CPropertyGridMonthCalCtrl::OnMcnSelect(NMHDR *pNMHDR, LRESULT *pResult)
  29. {
  30. LPNMSELCHANGE pSelChange = reinterpret_cast<LPNMSELCHANGE>(pNMHDR);
  31. GetOwner()->SendMessage(WM_PG_DATESELCHANGED);
  32. *pResult = 0;
  33. }
  34. UINT CPropertyGridMonthCalCtrl::OnGetDlgCode()
  35. {
  36. return DLGC_WANTALLKEYS;
  37. }
  38. void CPropertyGridMonthCalCtrl::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
  39. {
  40. if (nChar == VK_ESCAPE)
  41. {
  42. DestroyWindow();
  43. return;
  44. }
  45. else if (nChar == VK_RETURN || nChar == VK_EXECUTE)
  46. {
  47. GetOwner()->SendMessage(WM_PG_DATESELCHANGED);
  48. return;
  49. }
  50. CMonthCalCtrl::OnKeyDown(nChar, nRepCnt, nFlags);
  51. }