| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- // GridTrunkMatch.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "FirstStep.h"
- #include "GridTrunkMatch.h"
- #include "TrunkMatch.h"
- #include "Config.h"
- // CGridTrunkMatch
- IMPLEMENT_DYNAMIC(CGridTrunkMatch, CMFCPropertyGridCtrl)
- CGridTrunkMatch::CGridTrunkMatch()
- {
- }
- CGridTrunkMatch::~CGridTrunkMatch()
- {
- }
- /*****************************************************************
- **【函数名称】 __locate
- **【函数功能】 定位中继匹配
- **【参数】
- **【返回值】
- ****************************************************************/
- CMFCPropertyGridProperty* CGridTrunkMatch::__locate( UINT TrunkMatchId )
- {
- int Count = GetPropertyCount();
- CMFCPropertyGridProperty* pTrunkMatch = NULL;
- for(int i = 0; i < Count; ++i)
- {
- pTrunkMatch = GetProperty(i);
- ASSERT(pTrunkMatch != NULL);
- if(pTrunkMatch->GetData() == TrunkMatchId)
- return pTrunkMatch;
- }
- return NULL;
- }
- /*****************************************************************
- **【函数名称】 __add
- **【函数功能】 添加指定中继匹配
- **【参数】
- **【返回值】
- ****************************************************************/
- void CGridTrunkMatch::__add( TRUNK_MATCH* pTrunkMatch )
- {
- CString Data;
- Data.Format(_T("中继匹配%d"), pTrunkMatch->Id);
- CMFCPropertyGridProperty* pTrunkMatchUI = new CMFCPropertyGridProperty(Data, pTrunkMatch->Id);
- pTrunkMatchUI->AddSubItem(new CMFCPropertyGridProperty(_T("字冠"), pTrunkMatch->Prefix, NULL, pTrunkMatch->Id));
- pTrunkMatchUI->AddSubItem(new CMFCPropertyGridProperty(_T("透传号码"), pTrunkMatch->Caller, NULL, pTrunkMatch->Id));
- Data.Format(_T("%d"), pTrunkMatch->TrunkItemId);
- pTrunkMatchUI->AddSubItem(new CMFCPropertyGridProperty(_T("中继项ID"), Data, NULL, pTrunkMatch->Id));
- Data.Format(_T("%d"), pTrunkMatch->Priority);
- CMFCPropertyGridProperty* pPriority = new CMFCPropertyGridProperty(_T("优先级"), Data, _T("相同字冠优先级高的先被匹配"), pTrunkMatch->Id);
- pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_NORMAL);
- pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_HIGH);
- pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_HIGHER);
- pPriority->AddOption(CONST_STR_TRUNK_MATCH_PRIORITY_HIGHEST);
- pPriority->AllowEdit(FALSE);
- pTrunkMatchUI->AddSubItem(pPriority);
- AddProperty(pTrunkMatchUI);
- }
- /*****************************************************************
- **【函数名称】 init
- **【函数功能】 初始化
- **【参数】
- **【返回值】
- ****************************************************************/
- void CGridTrunkMatch::init( void )
- {
- EnableHeaderCtrl(FALSE);
- SetVSDotNetLook();
- CRect rect;
- GetClientRect(rect);
- HDITEM item;
- item.cxy = rect.Width() / 3;
- item.mask = HDI_WIDTH;
- GetHeaderCtrl().SetItem(0, &item);
- CTrunkMatch& TrunkMatch = CConfig::GetInstance().trunkMatch();
- POSITION Pos = TrunkMatch.GetHeadPosition();
- while(Pos != NULL)
- {
- TRUNK_MATCH* pMatch = TrunkMatch.GetNext(Pos);
- ASSERT(pMatch != NULL);
- __add(pMatch);
- }
- }
- /*****************************************************************
- **【函数名称】 addTrunkMatch
- **【函数功能】 添加TrunkMatch
- **【参数】
- **【返回值】
- ****************************************************************/
- bool CGridTrunkMatch::addTrunkMatch( UINT TrunkMatchId )
- {
- if(__locate(TrunkMatchId) != NULL)
- return false;
- TRUNK_MATCH Match = { 0 };
- Match.Id = TrunkMatchId;
- Match.Priority = CONST_TRUNK_MATCH_PRIORITY_HIGHEST;
- __add(&Match);
- return true;
- }
- /*****************************************************************
- **【函数名称】 delTrunkMatch
- **【函数功能】 删除TrunkMatch
- **【参数】
- **【返回值】
- ****************************************************************/
- void CGridTrunkMatch::delTrunkMatch( UINT TrunkMatchId )
- {
- CMFCPropertyGridProperty* pMatch = __locate(TrunkMatchId);
- if(pMatch != NULL)
- DeleteProperty(pMatch);
- }
- /*****************************************************************
- **【函数名称】 upload
- **【函数功能】 上传TrunkMatch信息
- **【参数】
- **【返回值】
- ****************************************************************/
- void CGridTrunkMatch::upload( void )
- {
- CTrunkMatch& TrunkMatch = CConfig::GetInstance().trunkMatch();
- TrunkMatch.Free();
- TRUNK_MATCH* pMatch = NULL;
- CString Value;
- CMFCPropertyGridProperty* pMatchOnUI = NULL;
- for (int i = 0; i < GetPropertyCount(); ++i)
- {
- pMatchOnUI = GetProperty(i);
- ASSERT(pMatchOnUI != NULL);
- pMatch = new TRUNK_MATCH;
- ZeroMemory(pMatch, sizeof(TRUNK_MATCH));
- pMatch->Id = pMatchOnUI->GetData();
- Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_PREFIX)->GetValue();
- lstrcpy(pMatch->Prefix, Value);
- Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_CALLER)->GetValue();
- lstrcpy(pMatch->Caller, Value);
- Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_TRUNK_ITEM_ID)->GetValue();
- sscanf_s(Value, "%d", &pMatch->TrunkItemId);
- Value = pMatchOnUI->GetSubItem(TRUNK_MATCH_SUBITEM_PRIORITY)->GetValue();
- sscanf_s(Value, "%d", &pMatch->Priority);
- TrunkMatch.AddTail(pMatch);
- }
- }
- BEGIN_MESSAGE_MAP(CGridTrunkMatch, CMFCPropertyGridCtrl)
- END_MESSAGE_MAP()
- // CGridTrunkMatch 消息处理程序
|