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

📄 mclview.cpp

📁 人工智能实验---求解传教士与野人问题,并画出状态图做动态演示.
💻 CPP
字号:
// MCLView.cpp : implementation file
//

#include "stdafx.h"
#include "MCProc.h"
#include "MCLView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMCLView

IMPLEMENT_DYNCREATE(CMCLView, CView)

CMCLView::CMCLView()
{
	iItemNo=0;
}

CMCLView::~CMCLView()
{
}


BEGIN_MESSAGE_MAP(CMCLView, CView)
	//{{AFX_MSG_MAP(CMCLView)
	ON_WM_CREATE()
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMCLView drawing

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

/////////////////////////////////////////////////////////////////////////////
// CMCLView diagnostics

#ifdef _DEBUG
void CMCLView::AssertValid() const
{
	CView::AssertValid();
}

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

/////////////////////////////////////////////////////////////////////////////
// CMCLView message handlers

int CMCLView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	/*创建列表*/
	m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_ALIGNTOP,
		CRect(0,0,0,0),   this,   1);
	
	/*设置风格*/
	DWORD style=m_ListCtrl.GetExtendedStyle();
	style|=LVS_EX_GRIDLINES;
	m_ListCtrl.SetExtendedStyle(style);
	
	/*设置列属性*/
	LV_COLUMN lvcol;
	lvcol.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
	
    lvcol.fmt=LVCFMT_CENTER;//居中
	lvcol.pszText="操作前状态";
    lvcol.iSubItem=0;
    lvcol.cx=50;
	m_ListCtrl.InsertColumn(1,&lvcol);
    lvcol.pszText="操  作";
    lvcol.iSubItem=1;
    lvcol.cx=50;
	m_ListCtrl.InsertColumn(2,&lvcol);
	lvcol.pszText="操作后状态";
	lvcol.iSubItem=2;
	lvcol.cx=50;
	m_ListCtrl.InsertColumn(3,&lvcol);
	m_ListCtrl.SetBkColor(RGB(255,255,255));
	m_ListCtrl.SetTextBkColor(RGB(255,255,0));
    m_ListCtrl.SetTextColor(RGB(0,0,255));
	return 0;
}

void CMCLView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	/*框架改变时,重新定位ListCtrl*/
	CRect rc;
	GetClientRect(&rc);
	m_ListCtrl.MoveWindow(&rc);
	m_ListCtrl.SetColumnWidth(0,rc.Width()/3);
	m_ListCtrl.SetColumnWidth(1,rc.Width()/3);
	m_ListCtrl.SetColumnWidth(2,rc.Width()/3);
}

void CMCLView::AddItem(CString& strPre,CString& strOp,CString& strPos)
{
	int iPos;
	//添加记录
	LV_ITEM lvitem;
    lvitem.mask=LVIF_TEXT|LVIF_PARAM;
    lvitem.iItem=iItemNo;
	lvitem.iSubItem=0;
	lvitem.pszText=strPre.GetBuffer(20);
	lvitem.lParam=iItemNo;
	iPos=m_ListCtrl.InsertItem(&lvitem);
	
	lvitem.mask=LVIF_TEXT;
    lvitem.iItem=iPos;
	lvitem.iSubItem=1;
	lvitem.pszText=strOp.GetBuffer(20);
	m_ListCtrl.SetItem(&lvitem);
	
	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=iPos;
	lvitem.iSubItem=2;
	lvitem.pszText=strPos.GetBuffer(20);
	m_ListCtrl.SetItem(&lvitem);

	iItemNo++;
}

void CMCLView::DeleteAllItems()
{
	m_ListCtrl.DeleteAllItems();
	iItemNo=0;
}

⌨️ 快捷键说明

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