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

PropertySheet

开发平台:

Visual C++

  1. // PropertySheet1.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "propinprop.h"
  5. #include "PropertySheet1.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // PropertySheet1
  13. IMPLEMENT_DYNAMIC(PropertySheet1, CPropertySheet)
  14. PropertySheet1::PropertySheet1()
  15. {
  16. }
  17. PropertySheet1::~PropertySheet1()
  18. {
  19. }
  20. BOOL PropertySheet1::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.         SetActivePage( i );
  47.         return TRUE;
  48.       }
  49.     } 
  50.     return FALSE;
  51. }  
  52. BOOL PropertySheet1::PreTranslateMessage(MSG* pMsg)
  53. {
  54.   if( pMsg->message == WM_SYSKEYDOWN && pMsg->wParam > 32 )
  55.   {
  56.     if(CheckKey(pMsg->wParam))
  57.       return TRUE;
  58.   
  59.     return(GetParent()->GetParent()->PreTranslateMessage(pMsg));
  60.   }
  61.   return CPropertySheet::PreTranslateMessage(pMsg);
  62. }
  63. BEGIN_MESSAGE_MAP(PropertySheet1, CPropertySheet)
  64. //{{AFX_MSG_MAP(PropertySheet1)
  65. // NOTE - the ClassWizard will add and remove mapping macros here.
  66. //}}AFX_MSG_MAP
  67. END_MESSAGE_MAP()
  68. /////////////////////////////////////////////////////////////////////////////
  69. // PropertySheet1 message handlers