PPageBase.cpp
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2005 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. // PPageBase.cpp : implementation file
  22. //
  23. #include "stdafx.h"
  24. #include "mplayerc.h"
  25. #include "PPageBase.h"
  26. // CPPageBase dialog
  27. IMPLEMENT_DYNAMIC(CPPageBase, CCmdUIPropertyPage)
  28. CPPageBase::CPPageBase(UINT nIDTemplate, UINT nIDCaption)
  29. : CCmdUIPropertyPage(nIDTemplate, nIDCaption)
  30. {
  31. }
  32. CPPageBase::~CPPageBase()
  33. {
  34. }
  35. void CPPageBase::DoDataExchange(CDataExchange* pDX)
  36. {
  37. __super::DoDataExchange(pDX);
  38. }
  39. void CPPageBase::CreateToolTip()
  40. {
  41. m_wndToolTip.Create(this);
  42. m_wndToolTip.Activate(TRUE);
  43. m_wndToolTip.SetMaxTipWidth(300);
  44. m_wndToolTip.SetDelayTime(TTDT_AUTOPOP, 10000);
  45. for(CWnd* pChild = GetWindow(GW_CHILD); pChild; pChild = pChild->GetWindow(GW_HWNDNEXT))
  46. {
  47. CString strToolTip;
  48. if(strToolTip.LoadString(pChild->GetDlgCtrlID()))
  49. m_wndToolTip.AddTool(pChild, strToolTip);
  50. }
  51. }
  52. BOOL CPPageBase::PreTranslateMessage(MSG* pMsg)
  53. {
  54. if(IsWindow(m_wndToolTip))
  55. if(pMsg->message >= WM_MOUSEFIRST && pMsg->message <= WM_MOUSELAST)
  56. {
  57. MSG msg;
  58. memcpy(&msg, pMsg, sizeof(MSG));
  59. for(HWND hWndParent = ::GetParent(msg.hwnd); 
  60. hWndParent && hWndParent != m_hWnd;
  61. hWndParent = ::GetParent(hWndParent))
  62. {
  63. msg.hwnd = hWndParent;
  64. }
  65. if(msg.hwnd)
  66. {
  67. m_wndToolTip.RelayEvent(&msg);
  68. }
  69. }
  70. return __super::PreTranslateMessage(pMsg);
  71. }
  72. BEGIN_MESSAGE_MAP(CPPageBase, CCmdUIPropertyPage)
  73. ON_WM_DESTROY()
  74. END_MESSAGE_MAP()
  75. // CPPageBase message handlers
  76. BOOL CPPageBase::OnSetActive()
  77. {
  78. AfxGetApp()->WriteProfileInt(ResStr(IDS_R_SETTINGS), _T("LastUsedPage"), (UINT)m_pPSP->pszTemplate);
  79. return __super::OnSetActive();
  80. }
  81. void CPPageBase::OnDestroy()
  82. {
  83. __super::OnDestroy();
  84. m_wndToolTip.DestroyWindow();
  85. }