| 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);
- }
|