123
This commit is contained in:
91
Editor/Controls/SelectionCombo.cpp
Normal file
91
Editor/Controls/SelectionCombo.cpp
Normal file
@@ -0,0 +1,91 @@
|
||||
// SelectionCombo.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "SelectionCombo.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSelectionCombo
|
||||
|
||||
CSelectionCombo::CSelectionCombo()
|
||||
{
|
||||
}
|
||||
|
||||
CSelectionCombo::~CSelectionCombo()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSelectionCombo, CXTFlatComboBox)
|
||||
//{{AFX_MSG_MAP(CSelectionCombo)
|
||||
ON_WM_GETDLGCODE()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSelectionCombo message handlers
|
||||
|
||||
BOOL CSelectionCombo::Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID )
|
||||
{
|
||||
return CXTFlatComboBox::Create( dwStyle,rect,pParentWnd,nID );
|
||||
}
|
||||
|
||||
UINT CSelectionCombo::OnGetDlgCode()
|
||||
{
|
||||
return DLGC_WANTMESSAGE;
|
||||
}
|
||||
|
||||
BOOL CSelectionCombo::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
if (pMsg->message == WM_KEYDOWN)
|
||||
{
|
||||
if (pMsg->wParam == VK_RETURN)
|
||||
{
|
||||
NMCBEENDEDIT endEdit;
|
||||
endEdit.hdr.code = CBEN_ENDEDIT;
|
||||
endEdit.hdr.hwndFrom = m_hWnd;
|
||||
endEdit.hdr.idFrom = GetDlgCtrlID();
|
||||
endEdit.fChanged = true;
|
||||
endEdit.iNewSelection = CB_ERR;
|
||||
endEdit.iWhy = CBENF_RETURN;
|
||||
|
||||
CString text;
|
||||
GetWindowText( text );
|
||||
strcpy( endEdit.szText,text );
|
||||
|
||||
GetParent()->SendMessage( WM_NOTIFY,(WPARAM)GetDlgCtrlID(),(LPARAM)(&endEdit) );
|
||||
return TRUE;
|
||||
}
|
||||
if (pMsg->wParam == VK_ESCAPE)
|
||||
{
|
||||
SetWindowText( "" );
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (pMsg->message == WM_KILLFOCUS)
|
||||
{
|
||||
NMCBEENDEDIT endEdit;
|
||||
endEdit.hdr.code = CBEN_ENDEDIT;
|
||||
endEdit.hdr.hwndFrom = m_hWnd;
|
||||
endEdit.hdr.idFrom = GetDlgCtrlID();
|
||||
endEdit.fChanged = true;
|
||||
endEdit.iNewSelection = CB_ERR;
|
||||
endEdit.iWhy = CBENF_KILLFOCUS;
|
||||
|
||||
CString text;
|
||||
GetWindowText( text );
|
||||
strcpy( endEdit.szText,text );
|
||||
|
||||
GetParent()->SendMessage( WM_NOTIFY,(WPARAM)GetDlgCtrlID(),(LPARAM)(&endEdit) );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return CXTFlatComboBox::PreTranslateMessage(pMsg);
|
||||
}
|
||||
Reference in New Issue
Block a user