⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgrelationset.cpp

📁 RFID温度签的源码
💻 CPP
字号:
// DlgRelationSet.cpp : 实现文件
//

#include "stdafx.h"
#include "Temperature.h"
#include "DlgRelationSet.h"


// CDlgRelationSet 对话框

extern CTemperatureApp theApp;


IMPLEMENT_DYNAMIC(CDlgRelationSet, CDialog)

CDlgRelationSet::CDlgRelationSet(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgRelationSet::IDD, pParent),
	m_pName( NULL ),
	m_pValue( NULL ),
	m_pDeviceClient( NULL ),
	m_pList( NULL ),
	m_pnCount( NULL ),
	m_strStatic(_T(""))
	, m_strEdit(_T(""))
	, m_strEdit1(_T("")),
	m_nSelectItem( -1 )
{

}

CDlgRelationSet::~CDlgRelationSet()
{
	if( m_pName )
	{
		delete[] m_pName;
		m_pName = NULL;
	}

	if( m_pValue )
	{
		delete[] m_pValue;
		m_pValue = NULL;
	}
}

void CDlgRelationSet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_STATIC_SET_NAME, m_strStatic);
	DDX_Text(pDX, IDC_EDIT_SET_EDIT, m_strEdit);
	DDX_Control(pDX, IDC_LIST_CARD, m_ListCtrl);
	DDX_Text(pDX, IDC_EDIT1, m_strEdit1);
	DDV_MaxChars(pDX, m_strEdit1, 4);
}


BEGIN_MESSAGE_MAP(CDlgRelationSet, CDialog)
	ON_BN_CLICKED(ID_ADD, &CDlgRelationSet::OnBnClickedOk)
	ON_WM_CLOSE()
	ON_NOTIFY(HDN_ITEMCHANGED, 0, &CDlgRelationSet::OnHdnItemchangedListCard)
	ON_BN_CLICKED(IDC_BTN_MODIFY, &CDlgRelationSet::OnBnClickedBtnModify)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_CARD, &CDlgRelationSet::OnLvnItemchangedListCard)
	ON_BN_CLICKED(ID_DELETE, &CDlgRelationSet::OnBnClickedCancel)
END_MESSAGE_MAP()


// CDlgRelationSet 消息处理程序


BOOL CDlgRelationSet::OnInitDialog()
{
	CDialog::OnInitDialog();

	if( theApp.m_Lang == 0 )
	{
		SetWindowText( _T("设置") );
	}

	m_ListCtrl.SetExtendedStyle( LVS_EX_FULLROWSELECT );

	UINT nStrProduct = IDS_STR_SHORT_NAME;
	CString str;

	if( theApp.m_Lang == 0 )
	{
		nStrProduct = IDS_STR_SHORT_NAME_CH;

		str.LoadString( IDS_STR_SHORT_NAME_CH );
		GetDlgItem( IDC_STATIC_SN )->SetWindowText( str );

		str.LoadString( IDS_STR_ADD_CH );
		GetDlgItem( ID_ADD )->SetWindowText( str );

		str.LoadString( IDS_STR_MODIFY_CH );
		GetDlgItem( IDC_BTN_MODIFY )->SetWindowText( str );

		str.LoadString( IDS_STR_DELETE_CH );
		GetDlgItem( ID_DELETE )->SetWindowText( str );
	}
	
	str.LoadString( nStrProduct );
	m_ListCtrl.InsertColumn( 0, str, LVCFMT_LEFT, 60 );

	if( m_pName )
	{
		m_ListCtrl.InsertColumn( 1, m_pName, LVCFMT_LEFT, 100 );
	}
	else
	{
		str.LoadString( IDS_STR_PRODUCT_NAME );
		m_ListCtrl.InsertColumn( 1, str, LVCFMT_LEFT, 100 );
	}
	

	InitList();
	return TRUE;
}


void CDlgRelationSet::SetName(const TCHAR* strName )
{
	if( strName )
	{
		if( m_pName )
		{
			delete[] m_pName;
		}
		m_pName = new TCHAR[ _tcslen(strName) + 1];
		if( m_pName )
		{
			_tcscpy( m_pName, strName );
		}

		m_strStatic = strName;
	}
}

//void CDlgRelationSet::SetValueString(const char* strValue )
//{
//	if( strValue )
//	{
//		if( m_pValue )
//		{
//			delete[] m_pValue;
//		}
//		m_pValue = new char[ strlen(strValue) + 1];
//		if( m_pValue )
//		{
//			strcpy( m_pValue, strValue );
//		}
//
//		m_strEdit = strValue;
//	}
//}

// Add
void CDlgRelationSet::OnBnClickedOk()
{
	UpdateData( TRUE );

	char ch[64];

	UINT nIDRes;

	//LPTSTR lpStrCompare;
	LPTSTR lpStr = m_strEdit.GetBuffer();  
	//WideCharToMultiByte(CP_ACP,0,lpStr,-1,ch,64,NULL,NULL);  
	strcpy( ch, lpStr );
	lpStr = m_strEdit1.GetBuffer();
	//WideCharToMultiByte(CP_ACP,0,lpStr,-1,ch,64,NULL,NULL);  
	
	int nVal = atoi( lpStr );
	int nItemCount = m_ListCtrl.GetItemCount();

	if( m_strEdit.GetLength() == 0 || m_strEdit1.GetLength() == 0 )
	{
		if( theApp.m_Lang == 0 )
		{
			MessageBox( _T("空数据") );
		}
		else
		{
			MessageBox( _T("Empty data") );
		}

		return;
	}

	BOOL IsRepeat = FALSE;
	for( int i=0; i<nItemCount; i++ )
	{
		if( m_ListCtrl.GetItemData( i ) == nVal )
		{
			IsRepeat = TRUE;
			nIDRes = theApp.m_Lang == 0 ? IDS_STR_SN_CH : IDS_STRINGNEW;
			break;
		}

		CString strTemp = m_ListCtrl.GetItemText( 0, 1 );
		CString strTemp2 = m_strEdit.GetBuffer();
		if( strTemp == strTemp2 )
		{
			IsRepeat = TRUE;
			nIDRes = theApp.m_Lang == 0 ? IDS_STR_SNN_CH : IDS_STR_NEWW;
			break;
		}
	}

	if( IsRepeat == FALSE )
	{
	m_pList[*m_pnCount].CardData.CardID = nVal;
	strcpy( (char*)m_pList[*m_pnCount].CardData.CardName, ch );
	(*m_pnCount)++;
	
		
	int nItem = m_ListCtrl.InsertItem( nItemCount, m_strEdit1 );
	m_ListCtrl.SetItemData( nItem, nVal );
	m_ListCtrl.SetItemText( nItem, 1, m_strEdit );
	m_ListCtrl.EnsureVisible( nItem, TRUE );
	}
	else
	{
		CString str;
		str.LoadString( nIDRes );
		MessageBox( str );
	}
	//OnOK();
}


void CDlgRelationSet::OnClose()
{

	CDialog::OnClose();
}

void CDlgRelationSet::OnHdnItemchangedListCard(NMHDR *pNMHDR, LRESULT *pResult)
{
	BOOL IsFind = FALSE;
	LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
		
	DWORD dwData = m_ListCtrl.GetItemData( phdr->iItem );
	CARD_ID_NAME_MEM* pData = m_pList;
	char* pStr;
	for( int i=0; i< (*m_pnCount); i++ )
		{
		if( dwData == pData->CardData.CardID )
		{
			TCHAR ch[128];
			pStr = (char*)pData->CardData.CardName;
			memset( ch, 0, sizeof(ch) );
			//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 ); 
			strcpy( ch, pStr );
			m_strEdit = ch;
			m_strEdit.Format( _T("%d"), pData->CardData.CardID );
			m_dwSelectVal = dwData;
			m_nSelectPos = i;
			IsFind = TRUE;
			UpdateData( FALSE );
			break;
		}

		pData++;
	}

	if( IsFind == FALSE )
	{
		m_strEdit = _T("");
		m_strEdit = _T("");
		UpdateData( FALSE );
	}

	*pResult = 0;
}

void CDlgRelationSet::InitList()
{
	TCHAR ch[128];
	char* pStr = NULL;

	CARD_ID_NAME_MEM* pData = m_pList;
	int nItem;
	int ItemIndex = 0;

	if( m_pList && (*m_pnCount) > 0 )
	{
		for( int i=0; i< *m_pnCount; i++ )
		{
			if( pData->CardData.CardID == 0 ) 
			{
				pData++;
				continue;
			}

			_stprintf( ch, _T("%d"), pData->CardData.CardID );
			nItem = m_ListCtrl.InsertItem( ItemIndex, ch );
			m_ListCtrl.SetItemData( nItem, pData->CardData.CardID );
			pStr = (char*)pData->CardData.CardName;
			memset( ch, 0, sizeof(ch) );
			//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 ); 
			strcpy( ch, pStr );
			m_ListCtrl.SetItemText( nItem, 1, ch );
			ItemIndex++;
			pData++;
		}
	}
}
void CDlgRelationSet::OnBnClickedBtnModify()
{
	UpdateData( TRUE );

	if( m_nSelectItem != -1 )
	{
		char ch[64];
		LPTSTR lpStr = m_strEdit.GetBuffer();  
		//WideCharToMultiByte(CP_ACP,0,lpStr,-1,ch,64,NULL,NULL);
		strcpy( ch, lpStr );
		m_ListCtrl.SetItemText( m_nSelectItem, 1, lpStr );
		CARD_ID_NAME_MEM* pData = m_pList;
		for( int i=0; i<(*m_pnCount); i++ )
		{
			if( m_dwSelectVal == pData->CardData.CardID )
			{
				strcpy( (char*)m_pList[i].CardData.CardName, ch );
				break;
			}

			pData++;
		}
	}
}

void CDlgRelationSet::OnLvnItemchangedListCard(NMHDR *pNMHDR, LRESULT *pResult)
{
	BOOL IsFind = FALSE;
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);

	m_nSelectItem = -1;
	m_nSelectItem = pNMLV->iItem;
	DWORD dwData = m_ListCtrl.GetItemData( pNMLV->iItem );
	CARD_ID_NAME_MEM* pData = m_pList;
	char* pStr;
	for( int i=0; i< (*m_pnCount); i++ )
	{
		if( dwData == pData->CardData.CardID )
		{
			TCHAR ch[128];
			memset( ch, 0, sizeof(ch) );
			pStr = (char*)pData->CardData.CardName;
			//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 ); 
			strcpy( ch, pStr );
			m_strEdit = ch;
			m_strEdit1.Format( _T("%d"), pData->CardData.CardID );
			m_dwSelectVal = dwData;
			m_nSelectPos = i;

			UpdateData( FALSE );
			IsFind = TRUE;
			break;
		}

		pData++;
	}

	if( IsFind == FALSE )
	{
		m_strEdit = _T("");
		m_strEdit1 = _T("");
		UpdateData( FALSE );
	}

	*pResult = 0;
}

void CDlgRelationSet::OnBnClickedCancel()
{
	if( m_nSelectItem != -1 )
	{
		UINT nRCLang = ( theApp.m_Lang == 0 ) ? IDS_STR_DELETE_SURE_CH : IDS_STR_DELETE_SURE;
		DWORD dwSelectVal;
		CString str;
		str.LoadString( nRCLang );
		CString strText;
		dwSelectVal = m_ListCtrl.GetItemData( m_nSelectItem );

		strText.Format( str, dwSelectVal );
		int nRet = ::MessageBox( NULL, strText, _T(""), MB_YESNO );
		CARD_ID_NAME_MEM* pData = m_pList;

		if( nRet == IDYES )
		{
			m_ListCtrl.DeleteItem( m_nSelectItem );
			for( int i=0; i<(*m_pnCount); i++ )
			{
				if( dwSelectVal == pData->CardData.CardID )
				{
					pData->CardData.CardID = 0;
					(*m_pnCount)--;
					break;
				}

				pData++;
			}
		}

		int nItemCount = m_ListCtrl.GetItemCount();
		m_nSelectItem = nItemCount - 1;

		if( nItemCount == 0 )
		{
			m_strEdit = _T("");
			m_strEdit1 = _T("");
			UpdateData( FALSE );
		}
	}
	//OnCancel();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -