// XCombo.cpp : implementation file // #include "stdafx.h" #include "XCombo.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif UINT WM_XCOMBOLIST_COMPLETE = ::RegisterWindowMessage(_T("WM_XCOMBOLIST_COMPLETE")); //UINT WM_XCOMBOLIST_VK_ESCAPE = ::RegisterWindowMessage(_T("WM_XCOMBOLIST_VK_ESCAPE")); ///////////////////////////////////////////////////////////////////////////// // CXCombo BEGIN_MESSAGE_MAP(CXCombo, CAdvComboBox) //{{AFX_MSG_MAP(CXCombo) ON_WM_KILLFOCUS() //}}AFX_MSG_MAP END_MESSAGE_MAP() CXCombo::CXCombo(CWnd * pParent) : m_pParent(pParent), CAdvComboBox(FALSE, pParent) { XLISTCTRL_TRACE(_T("in CXCombo::CXCombo\n")); } CXCombo::~CXCombo() { XLISTCTRL_TRACE(_T("in CXCombo::~CXCombo\n")); } /////////////////////////////////////////////////////////////////////////////// // SendRegisteredMessage void CXCombo::SendRegisteredMessage(UINT nMsg, WPARAM wParam, LPARAM lParam) { CWnd *pWnd = m_pParent; if (pWnd) pWnd->SendMessage(nMsg, wParam, lParam); } /////////////////////////////////////////////////////////////////////////////// // CXCombo message handlers void CXCombo::OnKillFocus(CWnd* pNewWnd) { XLISTCTRL_TRACE(_T("in CXCombo::OnKillFocus\n")); CAdvComboBox::OnKillFocus(pNewWnd); if (pNewWnd != GetDropWnd()) { SendRegisteredMessage(WM_XCOMBOLIST_COMPLETE, 0, 0); } } void CXCombo::OnEscapeKey() { XLISTCTRL_TRACE(_T("in CXCombo::OnEscapeKey\n")); SendRegisteredMessage(WM_XCOMBOLIST_VK_ESCAPE, 0, 0); } void CXCombo::OnComboComplete() { XLISTCTRL_TRACE(_T("in CXCombo::OnComboComplete\n")); SendRegisteredMessage(WM_XCOMBOLIST_COMPLETE, 0, 0); }