home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / general / snapvw / snapps.cpp < prev    next >
C/C++ Source or Header  |  1998-03-26  |  2KB  |  61 lines

  1. // SnapPs.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "SnapVw.h"
  6. #include "SnapPs.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CSnapPropertySheet
  16.  
  17. IMPLEMENT_DYNAMIC(CSnapPropertySheet, CPropertySheet)
  18.  
  19. CSnapPropertySheet::CSnapPropertySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
  20.     :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
  21. {
  22. }
  23.  
  24. CSnapPropertySheet::CSnapPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
  25.     :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
  26. {
  27. }
  28.  
  29. CSnapPropertySheet::~CSnapPropertySheet()
  30. {
  31. }
  32.  
  33.  
  34. BEGIN_MESSAGE_MAP(CSnapPropertySheet, CPropertySheet)
  35.     //{{AFX_MSG_MAP(CSnapPropertySheet)
  36.         // NOTE - the ClassWizard will add and remove mapping macros here.
  37.     //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39.  
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CSnapPropertySheet message handlers
  42.  
  43. BOOL CSnapPropertySheet::PreTranslateMessage(MSG* pMsg)
  44. {
  45.     // since CPropertySheet::PreTranslateMessage will eat frame window
  46.     // accelerators, we call all frame windows' PreTranslateMessage first.
  47.     CFrameWnd* pFrameWnd = GetParentFrame();   // start with first parent frame
  48.     while (pFrameWnd != NULL)
  49.     {
  50.         // allow owner & frames to translate before IsDialogMessage does
  51.         if (pFrameWnd->PreTranslateMessage(pMsg))
  52.             return TRUE;
  53.  
  54.         // try parent frames until there are no parent frames
  55.         pFrameWnd = pFrameWnd->GetParentFrame();
  56.     }
  57.  
  58.     // otherwise, just let the sheet translate the message
  59.     return CPropertySheet::PreTranslateMessage(pMsg);
  60. }
  61.