#include "StdAfx.h"
|
#include "MBEditItemWnd.h"
|
|
CMBEditItemWnd::CMBEditItemWnd(void):SHostDialog(_T("LAYOUT:DLG_EDITITEM"))
|
{
|
m_bLayoutInited = FALSE;
|
m_strTitle = _T("ÉèÖÃÏîÄ¿");
|
m_strName1 = _T("");
|
m_strName2 = _T("");
|
m_strValue1 = _T("");
|
m_strValue2 = _T("");
|
m_arEidtItem.RemoveAll();
|
m_bValue2MultiRow = false;
|
m_bValue1NumberOnly = false;
|
m_bValue2NumberOnly = false;
|
m_uCampareValue = EDITITEM_CAMPARE_ALLVALUE;
|
m_bValue1CanEmpty = false;
|
m_bValue2CanEmpty = false;
|
}
|
|
|
CMBEditItemWnd::~CMBEditItemWnd(void)
|
{
|
|
}
|
|
|
int CMBEditItemWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
{
|
SetMsgHandled(FALSE);
|
return 0;
|
}
|
|
BOOL CMBEditItemWnd::OnInitDialog(HWND hWnd, LPARAM lParam)
|
{
|
|
SWindow *pWndTitle = FindChildByName2<SWindow>(_T("txt_title"));
|
if( pWndTitle )
|
pWndTitle->SetWindowText(m_strTitle);
|
|
SWindow *pWndName = FindChildByName2<SWindow>(_T("text_name"));
|
if( pWndName )
|
pWndName->SetWindowText(m_strName1);
|
pWndName = FindChildByName2<SWindow>(_T("text_name2"));
|
if( pWndName )
|
pWndName->SetWindowText(m_strName2);
|
|
SEdit *pEditName = FindChildByName2<SEdit>(_T("ed_name"));
|
if( pEditName )
|
{
|
if(m_bValue1NumberOnly)
|
pEditName->SetAttribute(_T("number"),_T("1"));
|
pEditName->SetWindowText(m_strValue1);
|
}
|
SRichEdit *pEditName2= FindChildByName2<SRichEdit>(_T("ed_name2"));
|
if( pEditName2 )
|
{
|
if(m_bValue2NumberOnly)
|
pEditName2->SetAttribute(_T("number"),_T("1"));
|
if( !m_bValue2MultiRow)
|
{
|
pEditName2->SetRichTextFlag(0);
|
pEditName2->SetAttribute(_T("pos"),_T("20,[10,-20,@26"));
|
}
|
pEditName2->SetWindowText(m_strValue2);
|
pEditName2->GetEventSet()->subscribeEvent(EVT_KEYDOWN,Subscriber(&CMBEditItemWnd::OnContentEventDown,this));
|
}
|
m_bLayoutInited = TRUE;
|
return 0;
|
}
|
|
|
// È·¶¨
|
void CMBEditItemWnd::OnOK()
|
{
|
CString strInfo;
|
SEdit *pEditName = FindChildByName2<SEdit>(_T("ed_name"));
|
if( pEditName )
|
{
|
m_strValue1 = pEditName->GetWindowText();
|
}
|
SRichEdit *pEditName2= FindChildByName2<SRichEdit>(_T("ed_name2"));
|
if( pEditName2 )
|
{
|
m_strValue2 = pEditName2->GetWindowText();
|
}
|
if( !m_bValue1CanEmpty)
|
{
|
if(m_strValue1.IsEmpty())
|
{
|
strInfo.Format(_T("%s ²»ÄÜΪ¿Õ£¡"), m_strName1);
|
MBMessageBox(m_hWnd,strInfo, _T("Ìáʾ"),MB_OK);
|
return;
|
}
|
}
|
if( !m_bValue2CanEmpty)
|
{
|
if(m_strValue2.IsEmpty())
|
{
|
strInfo.Format(_T("%s ²»ÄÜΪ¿Õ£¡"), m_strName2);
|
MBMessageBox(m_hWnd,strInfo, _T("Ìáʾ"),MB_OK);
|
return;
|
}
|
}
|
if(FindEditItem(m_strValue1,m_strValue2 ) < 0)
|
{
|
SHostDialog::OnOK();
|
return;
|
}
|
strInfo.Format(_T("%s(%s) ÒÑ´æÔÚ£¡"), m_strValue1, m_strValue2);
|
MBMessageBox(m_hWnd,strInfo, _T("Ìáʾ"),MB_OK);
|
}
|
void CMBEditItemWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
|
{
|
SetMsgHandled(FALSE);
|
// enter¼ü
|
if(((::GetAsyncKeyState( VK_RETURN ) & 0x8000)))
|
{
|
OnOK();
|
}
|
}
|
void CMBEditItemWnd::SetExistValueData( CEidtItemArray &arEidtItem)
|
{
|
m_arEidtItem.RemoveAll();
|
m_arEidtItem.Copy(arEidtItem);
|
}
|
void CMBEditItemWnd::SetWndData(CString strTitle, CString strName1, CString strName2)
|
{
|
m_strTitle = strTitle;
|
m_strName1 = strName1;
|
m_strName2 = strName2;
|
}
|
void CMBEditItemWnd::SetValueData( CString strValue1, CString strValue2)
|
{
|
m_strValue1 = strValue1;
|
m_strValue2 = strValue2;
|
}
|
void CMBEditItemWnd::GetValueData( CString &strValue1, CString &strValue2)
|
{
|
strValue1 = m_strValue1;
|
strValue2 = m_strValue2;
|
}
|
|
void CMBEditItemWnd::SetValueMultiRow( bool bValue2MultiRow)
|
{
|
m_bValue2MultiRow = bValue2MultiRow;
|
}
|
|
void CMBEditItemWnd::SetValueNumberOnly( bool bValue1NumberOnly, bool bValue2NumberOnly)
|
{
|
m_bValue1NumberOnly = bValue1NumberOnly;
|
m_bValue2NumberOnly = bValue2NumberOnly;
|
}
|
void CMBEditItemWnd::SetValueCanEmpty( bool bValue1CanEmpty, bool bValue2CanEmpty)
|
{
|
m_bValue1CanEmpty = bValue1CanEmpty;
|
m_bValue2CanEmpty = bValue2CanEmpty;
|
}
|
|
|
|
int CMBEditItemWnd::FindEditItem(CString strValue1, CString strValue2)
|
{
|
int nItem,nCount;
|
EDIT_ITEM item;
|
int nRetItem;
|
|
nRetItem = -1;
|
if(m_uCampareValue & EDITITEM_CAMPARE_FIRSTVALUE)
|
{
|
nCount = m_arEidtItem.GetSize();
|
for( nItem = 0; nItem < nCount; nItem++)
|
{
|
item = m_arEidtItem.GetAt(nItem);
|
if(item.strValue1 == strValue1)
|
{
|
nRetItem = nItem;
|
break;
|
}
|
}
|
}
|
else if(m_uCampareValue & EDITITEM_CAMPARE_SECONDVALUE)
|
{
|
nCount = m_arEidtItem.GetSize();
|
for( nItem = 0; nItem < nCount; nItem++)
|
{
|
item = m_arEidtItem.GetAt(nItem);
|
if(strValue2 == item.strValue2 )
|
{
|
nRetItem = nItem;
|
break;
|
}
|
}
|
}
|
else
|
{
|
nCount = m_arEidtItem.GetSize();
|
for( nItem = 0; nItem < nCount; nItem++)
|
{
|
item = m_arEidtItem.GetAt(nItem);
|
if(item.strValue1 == strValue1 && strValue2 == item.strValue2 )
|
{
|
nRetItem = nItem;
|
break;
|
}
|
}
|
}
|
return nRetItem;
|
}
|
bool CMBEditItemWnd::OnContentEventDown(EventArgs *pEvtBase)
|
{
|
EventKeyDown *pKeyDown = (EventKeyDown *)pEvtBase;
|
if( pKeyDown->nChar == VK_RETURN )
|
{
|
OnOK();
|
}
|
return true;
|
}
|