📄 varidynamiclistview.cpp
字号:
// VariDynamicListView.cpp : implementation file
//
#include "stdafx.h"
#include "AlgorithmicDesign.h"
#include "VariDynamicListView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CVariDynamicListView
IMPLEMENT_DYNCREATE(CVariDynamicListView, CListView)
CVariDynamicListView::CVariDynamicListView()
{
memset(m_x,0,sizeof(m_x));
m_n=0;
//m_linenumber=1;
m_linepronumber=1;
// memset(m_p,0,sizeof(m_p));
// memset(m_p,0,sizeof(m_p));
}
CVariDynamicListView::~CVariDynamicListView()
{
}
BEGIN_MESSAGE_MAP(CVariDynamicListView, CListView)
//{{AFX_MSG_MAP(CVariDynamicListView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVariDynamicListView drawing
void CVariDynamicListView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CVariDynamicListView diagnostics
#ifdef _DEBUG
void CVariDynamicListView::AssertValid() const
{
CListView::AssertValid();
}
void CVariDynamicListView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CVariDynamicListView message handlers
void CVariDynamicListView::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)(" MaxValue 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)(" TotalWeight 0");
theCtrl.InsertItem(&lvi);
m_Number=theCtrl.GetItemCount();
lvi.iItem = m_Number;
lvi.pszText = (LPTSTR)(LPCTSTR)(" n 0");
theCtrl.InsertItem(&lvi);
}
void CVariDynamicListView::SetVarianlemnpw(int n, int m, int p[100], int w[100])
{
//把物体和价值数组传递到 变量显示 部分
m_n = n;
memset(m_x,0,sizeof(m_x));
CListCtrl& theCtrl = GetListCtrl();
CString m_str,m_str2;
m_str.Format(" n %d",n);
theCtrl.SetItemText(7,0,m_str);
m_str.Format(" TotalWeight %d",m);
theCtrl.SetItemText(6,0,m_str);
m_str = " p {";
for( int i=0;i<n;i++)
{
if(i!=n-1)
m_str2.Format("%d, ",p[i]);
else
m_str2.Format("%d",p[i]);
m_str += m_str2;
}
m_str += "}";
theCtrl.SetItemText(4,0,m_str);
m_str = " w {";
for(i=0;i<n;i++)
{
if(i!=n-1)
m_str2.Format("%d, ",w[i]);
else
m_str2.Format("%d",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("%d, ",0);
else
m_str2.Format("%d",0);
m_str += m_str2;
}
m_str += "}";
theCtrl.SetItemText(3,0,m_str);
}
void CVariDynamicListView::SetX(int i, BOOL b)
{
if( b )
m_x[i] = 1;
else
m_x[i] = 0;
CListCtrl& theCtrl = GetListCtrl();
CString m_str,m_str2;
m_str = " x {";
for( i=0; i<m_n; i++)
{
if( i != m_n-1 )
m_str2.Format("%d, ",m_x[i]);
else
m_str2.Format("%d",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 CVariDynamicListView::SetMaxValue(CString v)
{
CListCtrl& theCtrl = GetListCtrl();
CString m_str;
m_str = " MaxValue ";
m_str += v;
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 CVariDynamicListView::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 + -