708 lines
18 KiB
C++
708 lines
18 KiB
C++
// AIChanList.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "Sys.h"
|
||
|
||
#include "AIChanList.h"
|
||
#include "ParaCfgView.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CAIChanList
|
||
|
||
CAIChanList::CAIChanList()
|
||
{
|
||
m_bEnableEx = TRUE;
|
||
m_nCurItem = 0;
|
||
m_nCurSubItem = 0;
|
||
}
|
||
|
||
CAIChanList::~CAIChanList()
|
||
{
|
||
}
|
||
|
||
BEGIN_MESSAGE_MAP(CAIChanList, CListCtrl)
|
||
//{{AFX_MSG_MAP(CAIChanList)
|
||
ON_WM_LBUTTONDOWN()
|
||
ON_WM_VSCROLL()
|
||
ON_WM_HSCROLL()
|
||
ON_NOTIFY_REFLECT(NM_CLICK, OnClick)
|
||
ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnColumnclick)
|
||
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
|
||
ON_WM_CREATE()
|
||
ON_WM_MOUSEWHEEL()
|
||
ON_WM_SETFOCUS()
|
||
ON_WM_CONTEXTMENU()
|
||
ON_WM_DRAWITEM()
|
||
ON_COMMAND(IDM_SameParam, OnSameParam)
|
||
ON_MESSAGE(WM_SET_CTRL_FOCUS, OnSetCtrlFocus)
|
||
ON_NOTIFY_REFLECT(NM_RCLICK, OnRclick)
|
||
//}}AFX_MSG_MAP
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CAIChanList message handlers
|
||
void CAIChanList::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
if(m_bEnableEx == FALSE) return;
|
||
|
||
*pResult = 0;
|
||
LPNMITEMACTIVATE lpItem = (LPNMITEMACTIVATE)pNMHDR;
|
||
m_nChanIdx = lpItem->iItem;
|
||
m_nType = lpItem->iSubItem;
|
||
|
||
if(m_nChanIdx != -1)
|
||
{
|
||
CRect rcCtrl;
|
||
GetSubItemRect(m_nChanIdx, m_nType, LVIR_LABEL, rcCtrl);
|
||
RestoreCtrl(rcCtrl);
|
||
}
|
||
}
|
||
|
||
extern CSysApp theApp;
|
||
BOOL CAIChanList::RestoreCtrl(CRect rcCtrl)
|
||
{
|
||
CParaCfgView* pParent = (CParaCfgView*)GetParent();
|
||
CADDoc* pDoc = (CADDoc*)pParent->GetDocument();
|
||
CString strMsg, strTmp, strCur;
|
||
int nCurSel = 0, bChannelEn = 0, nSampleRange = 0, nSampleGain = 0, nCouplingType = 0;
|
||
switch(m_nType)
|
||
{
|
||
// case LIST_COL_CHANNEL:
|
||
// rcCtrl.bottom = rcCtrl.bottom + 200;
|
||
// m_wndCombo.MoveWindow(rcCtrl);
|
||
// m_wndCombo.ResetContent();
|
||
// for(nChannel=0; nChannel<ACTS1000_AD_MAX_CHANNELS; nChannel++)
|
||
// {
|
||
// strMsg.Format("AI%d", nChannel);
|
||
// m_wndCombo.AddString(strMsg);
|
||
// }
|
||
//
|
||
// //??
|
||
// strCur.Format("AI%d", ADPara.bChannelArray[m_nChanIdx]);
|
||
// nCurSel = m_wndCombo.FindString(0, strCur);
|
||
// if(nCurSel == -1)
|
||
// nCurSel = 0;
|
||
//
|
||
// m_wndCombo.SetCurSel(nCurSel);
|
||
// m_wndCombo.EnableWindow(TRUE);
|
||
// m_wndCombo.ShowWindow(SW_SHOW);
|
||
// m_wndCombo.SendMessage(CB_SHOWDROPDOWN, TRUE, 0);
|
||
// m_wndCombo.SetFocus();
|
||
// break;
|
||
|
||
|
||
case LIST_COL_EN:
|
||
rcCtrl.bottom = rcCtrl.bottom + 200;
|
||
m_wndCombo.MoveWindow(rcCtrl);
|
||
m_wndCombo.ResetContent();
|
||
for(bChannelEn=0; bChannelEn<2; bChannelEn++)
|
||
{
|
||
m_wndCombo.AddString(g_strChannelEn[bChannelEn]);
|
||
}
|
||
|
||
nCurSel = ADPara.bChannelArray[m_nChanIdx];
|
||
|
||
m_wndCombo.SetCurSel(nCurSel);
|
||
m_wndCombo.EnableWindow(TRUE);
|
||
m_wndCombo.ShowWindow(SW_SHOW);
|
||
m_wndCombo.SendMessage(CB_SHOWDROPDOWN, TRUE, 0);
|
||
m_wndCombo.SetFocus();
|
||
break;
|
||
|
||
case LIST_COL_SAMPRANGE:
|
||
rcCtrl.bottom = rcCtrl.bottom + 200;
|
||
m_wndCombo.MoveWindow(rcCtrl);
|
||
m_wndCombo.ResetContent();
|
||
nCurSel = 0;
|
||
for(nSampleRange=0; nSampleRange<m_nSampRangeCount; nSampleRange++)
|
||
{
|
||
m_wndCombo.AddString(g_strAIRange[m_nSampRangeVal[nSampleRange]]);
|
||
if (ADPara.InputRange[m_nChanIdx] == m_nSampRangeVal[nSampleRange])
|
||
{
|
||
nCurSel = nSampleRange;
|
||
}
|
||
}
|
||
|
||
//nCurSel = ADPara.InputRange[m_nChanIdx];
|
||
m_wndCombo.SetCurSel(nCurSel);
|
||
m_wndCombo.EnableWindow(TRUE);
|
||
m_wndCombo.ShowWindow(SW_SHOW);
|
||
m_wndCombo.SendMessage(CB_SHOWDROPDOWN, TRUE, 0);
|
||
m_wndCombo.SetFocus();
|
||
break;
|
||
case LIST_COL_REFGND:
|
||
rcCtrl.bottom = rcCtrl.bottom + 200;
|
||
m_wndCombo.MoveWindow(rcCtrl);
|
||
m_wndCombo.ResetContent();
|
||
for(nCouplingType=0; nCouplingType<2; nCouplingType++)
|
||
{
|
||
m_wndCombo.AddString(g_strRefGround[nCouplingType]);
|
||
}
|
||
nCurSel = ADPara.CouplingType[m_nChanIdx];
|
||
m_wndCombo.SetCurSel(nCurSel);
|
||
m_wndCombo.EnableWindow(TRUE);
|
||
m_wndCombo.ShowWindow(SW_SHOW);
|
||
m_wndCombo.SendMessage(CB_SHOWDROPDOWN, TRUE, 0);
|
||
m_wndCombo.SetFocus();
|
||
break;
|
||
case LIST_COL_IMPED:
|
||
rcCtrl.bottom = rcCtrl.bottom + 200;
|
||
m_wndCombo.MoveWindow(rcCtrl);
|
||
m_wndCombo.ResetContent();
|
||
if (theApp.m_nRevisionID == PCIE8502D_RID)
|
||
{
|
||
for(nCouplingType=0; nCouplingType<1; nCouplingType++)
|
||
{
|
||
m_wndCombo.AddString(g_strInputImped[nCouplingType]);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
for(nCouplingType=0; nCouplingType<2; nCouplingType++)
|
||
{
|
||
m_wndCombo.AddString(g_strInputImped[nCouplingType]);
|
||
}
|
||
}
|
||
|
||
nCurSel = ADPara.InputImped[m_nChanIdx];
|
||
m_wndCombo.SetCurSel(nCurSel);
|
||
m_wndCombo.EnableWindow(TRUE);
|
||
m_wndCombo.ShowWindow(SW_SHOW);
|
||
m_wndCombo.SendMessage(CB_SHOWDROPDOWN, TRUE, 0);
|
||
m_wndCombo.SetFocus();
|
||
break;
|
||
}
|
||
return TRUE;
|
||
}
|
||
|
||
// <20><>Edit<69><74>ComboBoxʧȥ<CAA7><C8A5><EFBFBD><EFBFBD>ʱ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ô˺<C3B4><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>øı<C3B8><C4B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||
LRESULT CAIChanList::OnSetCtrlFocus(WPARAM wParam, LPARAM lParam)
|
||
{
|
||
CParaCfgView* pParent = (CParaCfgView*)GetParent();
|
||
|
||
CString strMsg;
|
||
int nCurSel = 0;
|
||
int nChannel = 0;
|
||
ULONG nSampleRange = 0;
|
||
ULONG nSampChanCount = 0;
|
||
switch(m_nType)
|
||
{
|
||
case LIST_COL_CHANNEL:
|
||
nCurSel = m_wndCombo.GetCurSel();
|
||
m_wndCombo.GetLBText(nCurSel, strMsg);
|
||
ADPara.bChannelArray[m_nChanIdx] = nCurSel;
|
||
SetItemText(m_nChanIdx, m_nType, strMsg);
|
||
break;
|
||
|
||
|
||
case LIST_COL_EN:
|
||
nCurSel = m_wndCombo.GetCurSel();
|
||
m_wndCombo.GetLBText(nCurSel, strMsg);
|
||
ADPara.bChannelArray[m_nChanIdx] = nCurSel;
|
||
if (gl_ADMainInfo.nChannelCount>2)
|
||
{
|
||
switch (m_nChanIdx)
|
||
{
|
||
case 0:
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 0;
|
||
ADPara.bChannelArray[2] = 0;
|
||
ADPara.bChannelArray[3] = 0;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
break;
|
||
case 1:
|
||
if (nCurSel == 0)
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 0;
|
||
ADPara.bChannelArray[2] = 0;
|
||
ADPara.bChannelArray[3] = 0;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
}
|
||
else
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 1;
|
||
ADPara.bChannelArray[2] = 0;
|
||
ADPara.bChannelArray[3] = 0;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
}
|
||
break;
|
||
case 2:
|
||
if (nCurSel == 0)
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 1;
|
||
ADPara.bChannelArray[2] = 0;
|
||
ADPara.bChannelArray[3] = 0;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
}
|
||
else
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 1;
|
||
ADPara.bChannelArray[2] = 1;
|
||
ADPara.bChannelArray[3] = 1;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
}
|
||
break;
|
||
case 3:
|
||
if (nCurSel == 0)
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 1;
|
||
ADPara.bChannelArray[2] = 0;
|
||
ADPara.bChannelArray[3] = 0;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
}
|
||
else
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 1;
|
||
ADPara.bChannelArray[2] = 1;
|
||
ADPara.bChannelArray[3] = 1;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
}
|
||
break;
|
||
case 4:
|
||
case 5:
|
||
case 6:
|
||
case 7:
|
||
if (nCurSel == 0)
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 1;
|
||
ADPara.bChannelArray[2] = 1;
|
||
ADPara.bChannelArray[3] = 1;
|
||
ADPara.bChannelArray[4] = 0;
|
||
ADPara.bChannelArray[5] = 0;
|
||
ADPara.bChannelArray[6] = 0;
|
||
ADPara.bChannelArray[7] = 0;
|
||
}
|
||
else
|
||
{
|
||
ADPara.bChannelArray[0] = 1;
|
||
ADPara.bChannelArray[1] = 1;
|
||
ADPara.bChannelArray[2] = 1;
|
||
ADPara.bChannelArray[3] = 1;
|
||
ADPara.bChannelArray[4] = 1;
|
||
ADPara.bChannelArray[5] = 1;
|
||
ADPara.bChannelArray[6] = 1;
|
||
ADPara.bChannelArray[7] = 1;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
//SetItemText(m_nChanIdx, m_nType, strMsg);
|
||
//pParent->SetCurveRange(m_nChanIdx, nCurSel);
|
||
for(nChannel=0; nChannel<gl_ADMainInfo.nChannelCount; nChannel++)
|
||
{
|
||
|
||
SetItemText(nChannel, m_nType, g_strChannelEn[ADPara.bChannelArray[nChannel]]);
|
||
if(ADPara.bChannelArray[nChannel])
|
||
{
|
||
//g_lChCfg[nSampChanCount] = nChannel;
|
||
gl_CHIdx[nChannel] = nSampChanCount;
|
||
nSampChanCount++;
|
||
}
|
||
}
|
||
|
||
if(nSampChanCount == 0)
|
||
{
|
||
AfxMessageBox(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨");
|
||
m_wndCombo.GetLBText(1, strMsg);
|
||
SetItemText(m_nChanIdx, m_nType, strMsg);
|
||
ADPara.bChannelArray[m_nChanIdx] = 1;
|
||
}
|
||
else
|
||
{
|
||
//??? g_nSampChanCount = nSampChanCount;
|
||
// ADPara.nSampChanCount = nSampChanCount;
|
||
// pParent->OnSelchangeCOMBOnSampChanCount();
|
||
|
||
gl_nChannelCount = nSampChanCount;
|
||
}
|
||
pParent->EnableVootRange();
|
||
break;
|
||
|
||
case LIST_COL_SAMPRANGE:
|
||
nCurSel = m_wndCombo.GetCurSel();
|
||
m_wndCombo.GetLBText(nCurSel, strMsg);
|
||
ADPara.InputRange[m_nChanIdx] = m_nSampRangeVal[nCurSel];
|
||
SetItemText(m_nChanIdx, m_nType, strMsg);
|
||
//???pParent->SetCurveRange(m_nChanIdx, nCurSel);
|
||
|
||
pParent->EnableVootRange();
|
||
break;
|
||
|
||
case LIST_COL_REFGND:
|
||
nCurSel = m_wndCombo.GetCurSel();
|
||
m_wndCombo.GetLBText(nCurSel, strMsg);
|
||
ADPara.CouplingType[m_nChanIdx] = nCurSel;
|
||
SetItemText(m_nChanIdx, m_nType, strMsg);
|
||
break;
|
||
|
||
case LIST_COL_IMPED:
|
||
nCurSel = m_wndCombo.GetCurSel();
|
||
m_wndCombo.GetLBText(nCurSel, strMsg);
|
||
ADPara.InputImped[m_nChanIdx] = nCurSel;
|
||
SetItemText(m_nChanIdx, m_nType, strMsg);
|
||
break;
|
||
}
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
void CAIChanList::OnLButtonDown(UINT nFlags, CPoint point)
|
||
{
|
||
if(m_bEnableEx == FALSE) return;
|
||
|
||
// TODO: Add your message handler code here and/or call default
|
||
SetFocus();
|
||
CListCtrl::OnLButtonDown(nFlags, point);
|
||
}
|
||
|
||
BOOL CAIChanList::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
|
||
{
|
||
m_wndCombo.ShowWindow(SW_HIDE);
|
||
m_wndCombo.EnableWindow(FALSE);
|
||
|
||
m_wndEdit.ShowWindow(SW_HIDE);
|
||
m_wndEdit.EnableWindow(FALSE);
|
||
|
||
return CListCtrl::OnMouseWheel(nFlags, zDelta, pt);
|
||
}
|
||
|
||
void CAIChanList::PreSubclassWindow()
|
||
{
|
||
// TODO: Add your specialized creation code here
|
||
CListCtrl::PreSubclassWindow();
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﴴ<EFBFBD><EFB4B4>
|
||
DWORD dwStyle;
|
||
CRect Rect(0, 0, 10, 10);
|
||
|
||
dwStyle = WS_BORDER | WS_CHILD | ES_LEFT | ES_AUTOHSCROLL;
|
||
if( !m_wndEdit.Create(dwStyle, Rect, this, 0 ) )
|
||
MessageBox(L"m_wndEdit.Create Error");
|
||
|
||
dwStyle = WS_CHILD | CBS_DROPDOWNLIST | WS_VSCROLL;
|
||
if( !m_wndCombo.Create(dwStyle, Rect, this, 0 ) )
|
||
MessageBox(L"m_wndCombo.Create Error");
|
||
|
||
}
|
||
|
||
void CAIChanList::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||
{
|
||
// TODO: Add your message handler code here and/or call default
|
||
m_wndCombo.ShowWindow(SW_HIDE);
|
||
m_wndCombo.EnableWindow(FALSE);
|
||
|
||
m_wndEdit.ShowWindow(SW_HIDE);
|
||
m_wndEdit.EnableWindow(FALSE);
|
||
|
||
CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
|
||
}
|
||
|
||
void CAIChanList::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||
{
|
||
// TODO: Add your message handler code here and/or call default
|
||
m_wndCombo.ShowWindow(SW_HIDE);
|
||
m_wndCombo.EnableWindow(FALSE);
|
||
|
||
m_wndEdit.ShowWindow(SW_HIDE);
|
||
m_wndEdit.EnableWindow(FALSE);
|
||
|
||
CListCtrl::OnHScroll(nSBCode, nPos, pScrollBar);
|
||
}
|
||
|
||
BOOL CAIChanList::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
|
||
{
|
||
NMHEADER* pNMHeader = (NMHEADER*)lParam;
|
||
if(pNMHeader->hdr.code == -12) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Header<65>ϰ<EFBFBD><CFB0><EFBFBD>ʱ
|
||
{
|
||
m_wndCombo.ShowWindow(SW_HIDE);
|
||
m_wndCombo.EnableWindow(FALSE);
|
||
|
||
m_wndEdit.ShowWindow(SW_HIDE);
|
||
m_wndEdit.EnableWindow(FALSE);
|
||
}
|
||
|
||
return CListCtrl::OnNotify(wParam, lParam, pResult);
|
||
}
|
||
|
||
void CAIChanList::SetSameParam(int nCurItem, int nSubItem)
|
||
{
|
||
CString strNote;
|
||
int nID = 0, nItem = 0;
|
||
CParaCfgView* pParent = (CParaCfgView*)GetParent();
|
||
int nChannel=0;
|
||
ULONG nSampChanCount = 0;
|
||
|
||
//ACTS1000_PARA_AD CHParam = ADPara.CHParam[nCurItem];
|
||
LONG bCHChannelArray = ADPara.bChannelArray[nCurItem];
|
||
LONG lCHInputRange = ADPara.InputRange[nCurItem];
|
||
LONG lCHCouplingType = ADPara.CouplingType[nCurItem];
|
||
LONG lCHInputImped = ADPara.InputImped[nCurItem];
|
||
|
||
switch(nSubItem)
|
||
{
|
||
// case LIST_COL_CHANNEL:
|
||
// strNote.Format("ȷ<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>趨<EFBFBD><E8B6A8><EFBFBD><EFBFBD>%d<>ŵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", nCurItem);
|
||
// nID = AfxMessageBox(strNote, MB_YESNO);
|
||
// if(nID == IDNO)
|
||
// break;
|
||
//
|
||
// strNote.Format("AI%d", bCHChannelArray);
|
||
// for(nItem=0; nItem<GetItemCount(); nItem++)
|
||
// {
|
||
// ADPara.bChannelArray[nItem] = bCHChannelArray;
|
||
// SetItemText(nItem, nSubItem, strNote);
|
||
// }
|
||
// break;
|
||
|
||
case LIST_COL_EN:
|
||
strNote.Format(L"ȷ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>趨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>ŵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", nCurItem);
|
||
nID = AfxMessageBox(strNote, MB_YESNO);
|
||
if(nID == IDNO)
|
||
break;
|
||
|
||
strNote = GetItemText(nCurItem, nSubItem);
|
||
|
||
for(nItem=0; nItem<GetItemCount(); nItem++)
|
||
{
|
||
ADPara.bChannelArray[nItem] = bCHChannelArray;
|
||
SetItemText(nItem, nSubItem, strNote);
|
||
}
|
||
|
||
if(bCHChannelArray)
|
||
{
|
||
}
|
||
else
|
||
{
|
||
//AfxMessageBox(L"<22><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨");
|
||
|
||
for(nItem=0; nItem<GetItemCount(); nItem++)
|
||
{
|
||
ADPara.bChannelArray[nItem] = 0;
|
||
SetItemText(nItem, nSubItem, strNote);
|
||
}
|
||
ADPara.bChannelArray[0] = 1;
|
||
SetItemText(0, nSubItem, L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||
|
||
}
|
||
|
||
nSampChanCount = 0;
|
||
for( nChannel=0; nChannel<gl_ADMainInfo.nChannelCount; nChannel++)
|
||
{
|
||
if (ADPara.bChannelArray[nChannel]==1)
|
||
{
|
||
//g_lChCfg[nSampChanCount] = nChannel;
|
||
gl_CHIdx[nChannel] = nSampChanCount;
|
||
nSampChanCount++;
|
||
}
|
||
}
|
||
//??? g_nSampChanCount = nSampChanCount;
|
||
// ADPara.nSampChanCount = nSampChanCount;
|
||
// pParent->OnSelchangeCOMBOnSampChanCount();
|
||
gl_nChannelCount = nSampChanCount;
|
||
pParent->EnableVootRange();
|
||
break;
|
||
|
||
case LIST_COL_SAMPRANGE:
|
||
strNote.Format(L"ȷ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD>趨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>ŵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", nCurItem);
|
||
nID = AfxMessageBox(strNote, MB_YESNO);
|
||
if(nID == IDNO)
|
||
break;
|
||
|
||
strNote = GetItemText(nCurItem, nSubItem);
|
||
for(nItem=0; nItem<GetItemCount(); nItem++)
|
||
{
|
||
ADPara.InputRange[nItem] = lCHInputRange;
|
||
SetItemText(nItem, nSubItem, strNote);
|
||
//???pParent->SetCurveRange(nItem, lCHInputRange);
|
||
}
|
||
pParent->EnableVootRange();
|
||
break;
|
||
|
||
case LIST_COL_REFGND:
|
||
strNote.Format(L"ȷ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>вο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>ŵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", nCurItem);
|
||
nID = AfxMessageBox(strNote, MB_YESNO);
|
||
if(nID == IDNO)
|
||
break;
|
||
|
||
strNote = GetItemText(nCurItem, nSubItem);
|
||
for(nItem=0; nItem<GetItemCount(); nItem++)
|
||
{
|
||
ADPara.CouplingType[nItem] = lCHCouplingType;
|
||
SetItemText(nItem, nSubItem, strNote);
|
||
}
|
||
break;
|
||
|
||
case LIST_COL_IMPED:
|
||
strNote.Format(L"ȷ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>迹<EFBFBD>趨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>ŵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", nCurItem);
|
||
nID = AfxMessageBox(strNote, MB_YESNO);
|
||
if(nID == IDNO)
|
||
break;
|
||
|
||
strNote = GetItemText(nCurItem, nSubItem);
|
||
for(nItem=0; nItem<GetItemCount(); nItem++)
|
||
{
|
||
ADPara.InputImped[nItem] = lCHInputImped;
|
||
SetItemText(nItem, nSubItem, strNote);
|
||
}
|
||
break;
|
||
}
|
||
} // SetSameParam
|
||
|
||
void CAIChanList::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
if(m_bEnableEx == FALSE) return;
|
||
|
||
CString strTemp, strMsg;
|
||
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
||
int nItem = 0, nSubItem = 0;
|
||
nItem = GetSelectionMark();
|
||
if(nItem < 0) nItem = 0;
|
||
nSubItem = pNMListView->iSubItem;
|
||
if(nSubItem < 0) nSubItem = 0;
|
||
SetSameParam(nItem, nSubItem);
|
||
*pResult = 0;
|
||
} // OnColumnclick
|
||
|
||
void CAIChanList::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
NMLVCUSTOMDRAW* pLVCD = (NMLVCUSTOMDRAW*)(pNMHDR);
|
||
// Take the default processing unless we set this to something else below.
|
||
*pResult = CDRF_NEWFONT;
|
||
// First thing - check the draw stage. If it's the control's prepaint
|
||
// stage, then tell Windows we want messages for every item.
|
||
if ( pLVCD->nmcd.dwDrawStage == CDDS_PREPAINT)
|
||
{
|
||
*pResult = CDRF_NOTIFYITEMDRAW;
|
||
}
|
||
// This is the notification message for an item. We'll request
|
||
// notifications before each subitem's prepaint stage.
|
||
else // if ( pLVCD->nmcd.dwDrawStage==CDDS_ITEMPREPAINT )
|
||
{
|
||
*pResult = CDRF_DODEFAULT;
|
||
}
|
||
}
|
||
|
||
int CAIChanList::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||
{
|
||
if (CListCtrl::OnCreate(lpCreateStruct) == -1)
|
||
return -1;
|
||
|
||
CFont axisFont;
|
||
axisFont.CreateFont(54, 120, 11, 32, 400,
|
||
FALSE, FALSE, 10, ANSI_CHARSET,
|
||
OUT_DEFAULT_PRECIS,
|
||
CLIP_DEFAULT_PRECIS,
|
||
DEFAULT_QUALITY,
|
||
DEFAULT_PITCH|FF_SWISS, L"MS Sans Serif");
|
||
|
||
SetFont(&axisFont);
|
||
|
||
return 0;
|
||
}
|
||
|
||
BOOL CAIChanList::EnableWindowEx(BOOL bEnable)
|
||
{
|
||
BOOL bOldEnable = m_bEnableEx;
|
||
m_bEnableEx = bEnable;
|
||
return bOldEnable;
|
||
}
|
||
|
||
void CAIChanList::OnSetFocus(CWnd* pOldWnd)
|
||
{
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿؼ<C3BF><D8BC><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD><CCB4>ڵ<EFBFBD>ס<EFBFBD>ٻָ<D9BB><D6B8><EFBFBD>ǰʱList<73><74><EFBFBD><EFBFBD>ʾģ<CABE><C4A3><EFBFBD><EFBFBD>
|
||
// CListCtrl::OnSetFocus(pOldWnd);
|
||
}
|
||
|
||
void CAIChanList::OnContextMenu(CWnd* pWnd, CPoint point)
|
||
{
|
||
int nIndex = 0, nItemCount, nSeledCount = 0;
|
||
nItemCount = GetItemCount();
|
||
for(nIndex=0; nIndex<nItemCount; nIndex++)
|
||
{
|
||
UINT nStatus = GetItemState(nIndex, LVIS_SELECTED);
|
||
if(nStatus == 0)
|
||
{
|
||
continue;
|
||
}
|
||
nSeledCount++;
|
||
}
|
||
|
||
if(nSeledCount == 0)
|
||
return;
|
||
|
||
if (point.x == -1 && point.y == -1)
|
||
{
|
||
CRect rect;
|
||
GetClientRect(rect);
|
||
ClientToScreen(rect);
|
||
point = rect.TopLeft();
|
||
point.Offset(5, 5);
|
||
}
|
||
|
||
CMenu menu;
|
||
VERIFY(menu.LoadMenu(IDR_ListCHParam));
|
||
|
||
CMenu* pPopup = menu.GetSubMenu(0);
|
||
ASSERT(pPopup != NULL);
|
||
CWnd* pWndPopupOwner = this;
|
||
|
||
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner);
|
||
|
||
} // OnContextMenu
|
||
|
||
void CAIChanList::OnSameParam()
|
||
{
|
||
int nItem = GetSelectionMark();
|
||
if(nItem != -1)
|
||
{
|
||
SetSameParam(m_nCurItem, m_nCurSubItem);
|
||
}
|
||
}
|
||
|
||
void CAIChanList::OnRclick(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
NMLVCUSTOMDRAW* pLVCD = (NMLVCUSTOMDRAW*)(pNMHDR);
|
||
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
||
int nItem = 0, nSubItem = 0;
|
||
m_nCurItem = pNMListView->iItem;
|
||
m_nCurSubItem = pNMListView->iSubItem;
|
||
*pResult = 0;
|
||
}
|