home *** CD-ROM | disk | FTP | other *** search
- // NotifyShowCase.cpp : implementation file
- //
-
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
-
- #include "stdafx.h"
- #include "CmnCtrl2.h"
- #include "notifwdw.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CNotifyShowCase
-
- CNotifyShowCase::CNotifyShowCase()
- {
- m_totalLines = 200; // use this default
- }
-
- CNotifyShowCase::~CNotifyShowCase()
- {
- }
-
- BEGIN_MESSAGE_MAP(CNotifyShowCase, CEdit)
- //{{AFX_MSG_MAP(CNotifyShowCase)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- notifDescrip CNotifyShowCase::m_rgNotifDescrip[NOTIFCOUNT] =
- {
- // list control notifications
- {LVN_ITEMCHANGING, _T("LVN_ITEMCHANGING")},
- {LVN_ITEMCHANGED, _T("LVN_ITEMCHANGED")},
- {LVN_INSERTITEM, _T("LVN_INSERTITEM")},
- {LVN_DELETEITEM, _T("LVN_DELETEITEM")},
- {LVN_DELETEALLITEMS, _T("LVN_DELETEALLITEMS")},
- {LVN_BEGINLABELEDIT, _T("LVN_BEGINLABELEDIT")},
- {LVN_ENDLABELEDIT, _T("LVN_ENDLABELEDIT")},
- {LVN_BEGINDRAG, _T("LVN_BEGINDRAG")},
- {LVN_BEGINRDRAG, _T("LVN_BEGINRDRAG")},
- {LVN_COLUMNCLICK, _T("LVN_COLUMNCLICK")},
- {LVN_GETDISPINFO, _T("LVN_GETDISPINFO")},
- {LVN_SETDISPINFO, _T("LVN_SETDISPINFO")},
- // tree control notifications
- {TVN_ITEMEXPANDING, _T("TVN_ITEMEXPANDING")},
- {TVN_BEGINLABELEDIT, _T("TVN_BEGINLABELEDIT")},
- {TVN_ENDLABELEDIT, _T("TVN_ENDLABELEDIT")},
- {TVN_SELCHANGING, _T("TVN_SELCHANGING")},
- {TVN_SELCHANGED, _T("TVN_SELCHANGED")},
- {TVN_GETDISPINFO, _T("TVN_GETDISPINFO")},
- {TVN_SETDISPINFO, _T("TVN_SETDISPINFO")},
- {TVN_BEGINDRAG, _T("TVN_BEGINDRAG")},
- {TVN_KEYDOWN, _T("TVN_KEYDOWN")},
- {TVN_DELETEITEM, _T("TVN_DELETEITEM")},
- {TVN_ITEMEXPANDED, _T("TVN_ITEMEXPANDED")},
- };
-
-
- /////////////////////////////////////////////////////////////////////////////
- // CNotifyShowCase message handlers
- void CNotifyShowCase::AddLine(LPCTSTR lpsz)
- {
- TCHAR szt[50];
- int nLastChar;
- int cLines;
-
- if (GetLineCount() >= m_totalLines)
- {
- SetSel(0, LineLength(0), TRUE/*bNoScroll*/); // select the first line
- Clear(); // and remove it
- }
-
- nLastChar = LineIndex((cLines = GetLineCount() - 1)) + LineLength(cLines);
- _stprintf(szt, _T("%s\x0D\x0A"), lpsz);
- SetSel(nLastChar, nLastChar, TRUE/*bNoScroll*/);
- ReplaceSel(szt);
- }
-
- void CNotifyShowCase::ShowNotification(UINT nCode)
- {
- int i;
-
- for (i = 0; i < NOTIFCOUNT; i++) // linear search for few items is OK
- if (m_rgNotifDescrip[i].nCode == nCode)
- break;
-
- if (i == NOTIFCOUNT)
- {
- TCHAR szt[30];
-
- _stprintf(szt, _T("UNKNOWN CODE (%d)"), nCode);
- AddLine(szt);
- }
- else
- AddLine(m_rgNotifDescrip[i]. sztCodeName);
- }
-