PropertySubSheet1.cpp
上传用户:yongqian
上传日期:2007-01-02
资源大小:74k
文件大小:2k
源码类别:

PropertySheet

开发平台:

Visual C++

  1. // PropertySubSheet1.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "propinprop.h"
  5. #include "PropertySubSheet1.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // PropertySubSheet1
  13. IMPLEMENT_DYNAMIC(PropertySubSheet1, CPropertySheet)
  14. PropertySubSheet1::PropertySubSheet1()
  15. {
  16. }
  17. PropertySubSheet1::~PropertySubSheet1()
  18. {
  19. }
  20. BOOL PropertySubSheet1::CheckKey(char cAccel)
  21. {
  22.     CTabCtrl *pTab = GetTabControl();
  23.     
  24.     int n = pTab->GetItemCount();
  25.     char buf[80], shortcut[3];
  26.     
  27.     TC_ITEM tcItem;
  28.     tcItem.mask = TCIF_TEXT;
  29. tcItem.pszText = buf;
  30.     shortcut[0] = _T('&');
  31.     shortcut[2] = _T('');
  32. for( int i = 0; i < n; i++ ) {
  33.     
  34.       tcItem.cchTextMax = 79;
  35. pTab->GetItem( i, &tcItem );
  36.       shortcut[1] = cAccel;
  37.       
  38.       // convert string characters into uppercase characters
  39.       short nCount = 0;
  40.       while( buf[nCount] != '' ) {
  41.         buf[nCount] = toupper(buf[nCount]);
  42.         ++nCount;
  43.       }
  44.       if( strstr( buf, shortcut ) )
  45.       {
  46.       
  47.         SetActivePage( i );
  48.         return TRUE;
  49.       }
  50.     } 
  51.     return FALSE;
  52. }  
  53. BOOL PropertySubSheet1::PreTranslateMessage(MSG* pMsg)
  54. {
  55.   if( pMsg->message == WM_SYSKEYDOWN && pMsg->wParam > 32 )
  56.   {
  57.     
  58.     if(CheckKey(pMsg->wParam))
  59.       return TRUE;
  60.     
  61.     return(GetParent()->GetParent()->PreTranslateMessage(pMsg));
  62.   }
  63.   return CPropertySheet::PreTranslateMessage(pMsg);
  64. }
  65. BEGIN_MESSAGE_MAP(PropertySubSheet1, CPropertySheet)
  66. //{{AFX_MSG_MAP(PropertySubSheet1)
  67. // NOTE - the ClassWizard will add and remove mapping macros here.
  68. //}}AFX_MSG_MAP
  69. END_MESSAGE_MAP()
  70. /////////////////////////////////////////////////////////////////////////////
  71. // PropertySubSheet1 message handlers