#if !defined(AFX_CMBBOXONKEY_H__36ED32B2_ABFD_45F7_A2D3_141E394A3D45__INCLUDED_)
#define AFX_CMBBOXONKEY_H__36ED32B2_ABFD_45F7_A2D3_141E394A3D45__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CmbBoxOnKey.h : _xZkqqHx_iDhHiDgCiDfPiBfL_xHqqkZx_ _xZkqqHx_iDhEiDeAiDeDiDiL_xHqqkZx_
//

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS CComboBox

/////////////////////////////////////////////////////////////////////////////
// CFCCmbBoxOnKey _xZkqqHx_iDeFiDeCiDjDiDgIiDeF_xHqqkZx_

class CFCCmbBoxOnKey : public SUPER_CLASS
{
protected:
typedef SUPER_CLASS BASE_CLASS;

protected:
	DECLARE_DYNCREATE(CFCCmbBoxOnKey)

// _xZkqqHx_iDiGiBfLiDfFiKnGjAjEiBeC_xHqqkZx_
public:
	virtual void	AddKey (WORD wKey);
	virtual void	SetIsNumber (BOOL bIsNumber);

protected:
	virtual CRect	GetListClientRect () const;
	virtual CRect	GetListClientRectAsScreen () const;
	virtual LRESULT	OnListPursuerTextNeedInfo (int iIndex);
	virtual BOOL	OnItemPursuerTextNeedInfo (WString& wstrHintText);

	virtual LRESULT	ListMessageProc (	UINT uMsg,
										WPARAM wParam,
										LPARAM lParam);

protected:
	static LRESULT CALLBACK myWindowProc (	HWND hwnd,
											UINT uMsg,
											WPARAM wParam,
											LPARAM lParam);

// _xZkqqHx_iDiGiBfLiDfFjFmPjAjEiBeC_xHqqkZx_
protected:
	WORDSet	m_stKeys;
	BOOL	m_bIsNumber;
	WNDPROC	m_procList;
	HWND	m_hwndList;

	static map<HWND, CFCCmbBoxOnKey*>	s_mpListWndToCmbBox;

// _xZkqqHx_iDfCiDjDiDfIiDgHiDiJiDeOiDfGiDiHiDjD_xHqqkZx_
public:
	CFCCmbBoxOnKey ();

// _xZkqqHx_iDeBiDgHiDiKiDhCiDiFiBfLiDgH_xHqqkZx_
public:

// _xZkqqHx_iDeJiDhJiDiMiBfLiDfGiDiHiDjD_xHqqkZx_
public:

// _xZkqqHx_iDeJiBfLiDgPiBfLiDiJiDeDiDgI_xHqqkZx_
	// ClassWizard _xZkqqHx_iCmNiJlMjBhKiKnGjAjEiCmMiDeJiBfLiDgPiBfLiDiJiDeDiDgIiCpAjAlGjAkMiClFiCnMiClHiBeC_xHqqkZx_
	//{{AFX_VIRTUAL(CFCCmbBoxOnKey)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL

// _xZkqqHx_iDeDiDjDiDhGiDiKiDiBiDjDiDgFiBfLiDfGiDiHiDjD_xHqqkZx_
public:
	virtual ~CFCCmbBoxOnKey();

	// _xZkqqHx_jAlGjAkMiClDiCoKiClNiDiBiDgCiDfKiBfLiDfH_xHqqkZx_ _xZkqqHx_iDhNiDgCiDhGiKnGjAjE_xHqqkZx_
protected:
	//{{AFX_MSG(CFCCmbBoxOnKey)
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	//}}AFX_MSG
	afx_msg void OnSetfocus();
	afx_msg void OnKillfocus();
	afx_msg LRESULT OnUserPursuerTextNeedInfo (WPARAM wParam, LPARAM lParam = 0);

	DECLARE_MESSAGE_MAP()
}; // class CFCCmbBoxOnKey.

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ _xZkqqHx_iCmNjBePiNhDiCmMjClMjBePiCmJjCmHiJmBiCmMjAoJiMlOiCpAjBhNjDpMiClFiCnMiClHiBeC_xHqqkZx_

#endif // !defined(AFX_CMBBOXONKEY_H__36ED32B2_ABFD_45F7_A2D3_141E394A3D45__INCLUDED_)
