📄 variablelistview.cpp
字号:
// VariableListView.cpp : implementation file
//
#include "stdafx.h"
#include "AlgorithmicDesign.h"
#include "VariableListView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CVariableListView
IMPLEMENT_DYNCREATE(CVariableListView, CListView)
CVariableListView::CVariableListView()
{
memset(m_x,0,sizeof(m_x));
m_n=0;
m_m=0;
//m_linenumber=1;
m_linepronumber=1;
// memset(m_p,0,sizeof(m_p));
// memset(m_p,0,sizeof(m_p));
}
CVariableListView::~CVariableListView()
{
}
BEGIN_MESSAGE_MAP(CVariableListView, CListView)
//{{AFX_MSG_MAP(CVariableListView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVariableListView drawing
void CVariableListView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CVariableListView diagnostics
#ifdef _DEBUG
void CVariableListView::AssertValid() const
{
CListView::AssertValid();
}
void CVariableListView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CVariableListView message handlers
void CVariableListView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CListCtrl& theCtrl = GetListCtrl();
theCtrl.InsertColumn(0," 变量 ",LVCFMT_CENTER,441);
DWORD dwStype=GetWindowLong(theCtrl.GetSafeHwnd(),GWL_STYLE);
dwStype&=~LVS_TYPEMASK; //Remove the current stype flags
dwStype|=LVS_REPORT; //Add the List stype
dwStype|=LVS_SHOWSELALWAYS;
dwStype|=LVS_NOLABELWRAP;
SetWindowLong(theCtrl.GetSafeHwnd(),GWL_STYLE,dwStype); //Set it back into the list view
DWORD dwStyle = theCtrl.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE,0,0);
dwStyle |= LVS_EX_FULLROWSELECT ;//| LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP;
theCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)dwStyle);
DWORD dwEx = theCtrl.GetExtendedStyle();
theCtrl.SetExtendedStyle(dwEx|LVS_EX_FLATSB);
SetRedraw(true);
COLORREF clrBk =RGB(150, 175, 230);
theCtrl.SetBkColor( clrBk);
theCtrl.SetTextBkColor(clrBk);
int m_Number;
m_Number=theCtrl.GetItemCount();
LV_ITEM lvi;
lvi.mask = LVIF_TEXT | LVIF_STATE ;
lvi.iItem = m_Number;
lvi.iSubItem = 0;
lvi.pszText = (LPTSTR)(LPCTSTR)(" 变量名 当前值");
lvi.stateMask =LVIS_STATEIMAGEMASK;
lvi.state = INDEXTOSTATEIMAGEMASK(1);
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.state = LVIS_FOCUSED|LVIS_DROPHILITED|LVIS_ACTIVATING ;
lvi.pszText = (LPTSTR)(LPCTSTR)(" i 0");
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.state = INDEXTOSTATEIMAGEMASK(1);
lvi.pszText = (LPTSTR)(LPCTSTR)(" s 0");
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.pszText = (LPTSTR)(LPCTSTR)(" x {0}");
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.pszText = (LPTSTR)(LPCTSTR)(" p {0}");
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.pszText = (LPTSTR)(LPCTSTR)(" w {0}");
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.pszText = (LPTSTR)(LPCTSTR)(" m 0");
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.pszText = (LPTSTR)(LPCTSTR)(" n 0");
theCtrl.InsertItem(&lvi);
}
void CVariableListView::SetVarianlemnpw(int n, double m, double p[100], double w[100])
{
memset(m_x,0,sizeof(m_x));
// memset(m_p,0,sizeof(m_p));
// memset(m_p,0,sizeof(m_p));
CListCtrl& theCtrl = GetListCtrl();
CString m_str,m_str2;
m_n=n;
m_m=m;
m_str.Format(" n %d",n);
theCtrl.SetItemText(7,0,m_str);
m_str.Format(" m %f",m);
theCtrl.SetItemText(6,0,m_str);
m_str=" p {";
for(int i=0;i<n;i++)
{
// m_p[i]=p[i];
if(i!=n-1)
m_str2.Format("%.1f, ",p[i]);
else
m_str2.Format("%.1f",p[i]);
m_str+=m_str2;
}
m_str+="}";
theCtrl.SetItemText(4,0,m_str);
m_str=" w {";
for(i=0;i<n;i++)
{
// m_w[i]=w[i];
if(i!=n-1)
m_str2.Format("%.1f, ",w[i]);
else
m_str2.Format("%.1f",w[i]);
m_str+=m_str2;
}
m_str+="}";
theCtrl.SetItemText(5,0,m_str);
m_str=" x {";
for(i=0;i<n;i++)
{
if(i!=n-1)
m_str2.Format("%.1f, ",0);
else
m_str2.Format("%.1f",0);
m_str+=m_str2;
}
m_str+="}";
theCtrl.SetItemText(3,0,m_str);
}
void CVariableListView::SetX(double x, int num)
{
CListCtrl& theCtrl = GetListCtrl();
CString m_str,m_str2;
m_str=" x {";
for(int i=0;i<m_n;i++)
{
if(i==num-1)
{
if(num!=m_n)
{
m_x[i]=x;
m_str2.Format("%.1f, ",m_x[i]);
}
else
{
m_x[i]=x;
m_str2.Format("%.1f",m_x[i]);
}
}
else
{
if(i!=m_n-1)
m_str2.Format("%.1f, ",m_x[i]);
else
m_str2.Format("%.1f",m_x[i]);
}
m_str+=m_str2;
}
m_str+="}";
theCtrl.SetItemText(3,0,m_str);
int state=INDEXTOSTATEIMAGEMASK(1);;
int mask=LVIF_TEXT | LVIF_STATE;
theCtrl.SetItemState(m_linepronumber,state, mask );
state = LVIS_FOCUSED|LVIS_DROPHILITED|LVIS_ACTIVATING;
theCtrl.SetItemState(3,state, mask );
m_linepronumber=3;
}
void CVariableListView::SetS(double s)
{
CListCtrl& theCtrl = GetListCtrl();
CString m_str;
m_str.Format(" s %f",s);
theCtrl.SetItemText(2,0,m_str);
int state=INDEXTOSTATEIMAGEMASK(1);;
int mask=LVIF_TEXT | LVIF_STATE;
theCtrl.SetItemState(m_linepronumber,state, mask );
state = LVIS_FOCUSED|LVIS_DROPHILITED|LVIS_ACTIVATING;
theCtrl.SetItemState(2,state, mask );
m_linepronumber=2;
}
void CVariableListView::SetM(double m)
{
CListCtrl& theCtrl = GetListCtrl();
CString m_str;
m_str.Format(" m %f",m);
theCtrl.SetItemText(6,0,m_str);
int state=INDEXTOSTATEIMAGEMASK(1);;
int mask=LVIF_TEXT | LVIF_STATE;
theCtrl.SetItemState(m_linepronumber,state, mask );
state = LVIS_FOCUSED|LVIS_DROPHILITED|LVIS_ACTIVATING;
theCtrl.SetItemState(6,state, mask );
m_linepronumber=6;
}
void CVariableListView::SetI(int i)
{
CListCtrl& theCtrl = GetListCtrl();
CString m_str;
m_str.Format(" i %d",i);
theCtrl.SetItemText(1,0,m_str);
int state=INDEXTOSTATEIMAGEMASK(1);;
int mask=LVIF_TEXT | LVIF_STATE;
theCtrl.SetItemState(m_linepronumber,state, mask );
state = LVIS_FOCUSED|LVIS_DROPHILITED|LVIS_ACTIVATING;
theCtrl.SetItemState(1,state, mask );
m_linepronumber=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -