SSPC-Tester/Driver/PCIE8586/Samples/VC/Advanced/AIChanList.cpp

708 lines
18 KiB
C++
Raw Permalink Normal View History

// 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;
}