| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | 
							- // ComboBoxSearch.cpp : implementation file
 
- //
 
- #include "stdafx.h"
 
- #include "CP_Main.h"
 
- #include "ComboBoxSearch.h"
 
- #ifdef _DEBUG
 
- #define new DEBUG_NEW
 
- #undef THIS_FILE
 
- static char THIS_FILE[] = __FILE__;
 
- #endif
 
- /////////////////////////////////////////////////////////////////////////////
 
- // CComboBoxSearch
 
- CComboBoxSearch::CComboBoxSearch()
 
- {
 
- 	m_bShowingDropDown = FALSE;
 
- }
 
- CComboBoxSearch::~CComboBoxSearch()
 
- {
 
- }
 
- BEGIN_MESSAGE_MAP(CComboBoxSearch, CComboBox)
 
- 	//{{AFX_MSG_MAP(CComboBoxSearch)
 
- 	ON_CONTROL_REFLECT(CBN_DROPDOWN, OnDropdown)
 
- 	ON_CONTROL_REFLECT(CBN_SELENDCANCEL, OnSelendcancel)
 
- 	ON_CONTROL_REFLECT(CBN_SELENDOK, OnSelendok)
 
- 	//}}AFX_MSG_MAP
 
- END_MESSAGE_MAP()
 
- /////////////////////////////////////////////////////////////////////////////
 
- // CComboBoxSearch message handlers
 
- void CComboBoxSearch::OnDropdown() 
 
- {
 
- 	m_bShowingDropDown = TRUE;
 
- 	SetCurSel(0);
 
- }
 
- void CComboBoxSearch::OnSelendcancel() 
 
- {
 
- 	m_bShowingDropDown = FALSE;
 
- }
 
- void CComboBoxSearch::OnSelendok() 
 
- {
 
- 	m_bShowingDropDown = FALSE;
 
- }
 
- BOOL CComboBoxSearch::PreTranslateMessage(MSG* pMsg) 
 
- {
 
- 	switch(pMsg->message) 
 
- 	{
 
- 		case WM_KEYDOWN:
 
- 		{
 
- 			if(pMsg->wParam == VK_RETURN && m_bShowingDropDown == FALSE)
 
- 			{
 
- 				CWnd *pWnd = GetParent();
 
- 				if(pWnd)
 
- 				{
 
- 					if(GetCurSel() == -1)
 
- 					{
 
- 						//Add the text to the combo
 
- 						CString csText;
 
- 						GetWindowText(csText);
 
- 						int nRet = InsertString(0, csText);
 
- 						SetCurSel(nRet);
 
- 					}
 
- 					if(g_Opt.m_bFindAsYouType)
 
- 					{
 
- 						pWnd->SendMessage(NM_SELECT, 0, 0);
 
- 					}
 
- 					else
 
- 					{
 
- 						//Send a message to the parent to refill the lb from the search
 
- 						pWnd->PostMessage(CB_SEARCH, 0, 0);
 
- 					}
 
- 				}
 
- 				return TRUE;
 
- 			}	
 
- 			else if (pMsg->wParam == VK_DOWN ||
 
- 				pMsg->wParam == VK_UP ||
 
- 				pMsg->wParam == VK_F3)
 
- 			{
 
- 				if(g_Opt.m_bFindAsYouType)
 
- 				{
 
- 					CWnd *pWnd = GetParent();
 
- 					if(pWnd)
 
- 					{
 
- 						pWnd->SendMessage(CB_UPDOWN, pMsg->wParam, pMsg->lParam);
 
- 						return TRUE;
 
- 					}
 
- 				}
 
- //				if(!m_bShowingDropDown)
 
- //				{
 
- //					ShowDropDown();
 
- //					return TRUE;
 
- //				}
 
- 			}
 
- 			else if(pMsg->wParam == 'C' && 
 
- 					GetKeyState(VK_CONTROL) & 0x8000 ||
 
- 					pMsg->wParam == 'X' && 
 
- 					GetKeyState(VK_CONTROL) & 0x8000 ||
 
- 					pMsg->wParam == VK_DELETE)
 
- 			{
 
- 				LONG lEditSel = GetEditSel();
 
- 				if(LOWORD(lEditSel) == HIWORD(lEditSel))
 
- 				{
 
- 					CWnd *pWnd = GetParent();
 
- 					if(pWnd)
 
- 					{
 
- 						pWnd->SendMessage(CB_UPDOWN, pMsg->wParam, pMsg->lParam);
 
- 						return TRUE;
 
- 					}
 
- 				}
 
- 			}
 
- 			break;
 
- 		}
 
- 	}
 
- 	
 
- 	return CComboBox::PreTranslateMessage(pMsg);
 
- }
 
 
  |