⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 variprimview.cpp

📁 师兄做的算法可视化演示程序
💻 CPP
字号:
// VariPrimView.cpp : implementation file
//

#include "stdafx.h"
#include "AlgorithmicDesign.h"
#include "VariPrimView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CVariPrimView

IMPLEMENT_DYNCREATE(CVariPrimView, CListView)

CVariPrimView::CVariPrimView()
{
}

CVariPrimView::~CVariPrimView()
{
}


BEGIN_MESSAGE_MAP(CVariPrimView, CListView)
	//{{AFX_MSG_MAP(CVariPrimView)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CVariPrimView drawing

void CVariPrimView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CVariPrimView diagnostics

#ifdef _DEBUG
void CVariPrimView::AssertValid() const
{
	CListView::AssertValid();
}

void CVariPrimView::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CVariPrimView message handlers

void CVariPrimView::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.pszText = (LPTSTR)(LPCTSTR)("   vtxnum          0");
	theCtrl.InsertItem(&lvi);	
	m_Number=theCtrl.GetItemCount();
    lvi.iItem = m_Number;
	//lvi.state = LVIS_FOCUSED|LVIS_DROPHILITED|LVIS_ACTIVATING ;
	lvi.pszText = (LPTSTR)(LPCTSTR)("   u0              0");
	theCtrl.InsertItem(&lvi);	
	m_Number=theCtrl.GetItemCount();
    lvi.iItem = m_Number;
	lvi.pszText = (LPTSTR)(LPCTSTR)("   v               0");
	theCtrl.InsertItem(&lvi);	
	m_Number=theCtrl.GetItemCount();
    lvi.iItem = m_Number;
 	lvi.pszText = (LPTSTR)(LPCTSTR)("   i               0");
	theCtrl.InsertItem(&lvi);	
	m_Number=theCtrl.GetItemCount();
    lvi.iItem = m_Number;
	lvi.pszText = (LPTSTR)(LPCTSTR)("   k               0");
	theCtrl.InsertItem(&lvi);	
	 m_linepronumber=1;
}

void CVariPrimView::SetU0(int u0)
{
		CListCtrl& theCtrl = GetListCtrl();	
		CString m_str;
		m_str.Format("   u0              %d",u0);
        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 CVariPrimView::Setv(int v)
{
		CListCtrl& theCtrl = GetListCtrl();	
		CString m_str;
		m_str.Format("   v               %d",v);
        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 CVariPrimView::Setvtxnum(int vtxnum, int u0)
{
		CListCtrl& theCtrl = GetListCtrl();	
		CString m_str;
		m_str.Format("   vtxnum          %d",vtxnum);
        theCtrl.SetItemText(1,0,m_str);
		m_str.Format("   v0              %d",u0);
        theCtrl.SetItemText(2,0,m_str);
}

void CVariPrimView::SetI(int i)
{
		CListCtrl& theCtrl = GetListCtrl();	
		CString m_str;
		m_str.Format("   i               %d",i);
        theCtrl.SetItemText(4,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(4,state, mask );
		m_linepronumber=4;
}

void CVariPrimView::Setk(int k)
{
		CListCtrl& theCtrl = GetListCtrl();	
		CString m_str;
		m_str.Format("   k               %d",k);
        theCtrl.SetItemText(5,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(5,state, mask );
		m_linepronumber=5;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -