📄 outputview.cpp
字号:
// OutputView.cpp : implementation file
//
#include "stdafx.h"
#include "graph.h"
#include "graphDoc.h"
#include "OutputView.h"
#include "stack.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COutputView
IMPLEMENT_DYNCREATE(COutputView, CFormView)
COutputView::COutputView()
: CFormView(COutputView::IDD)
{
//{{AFX_DATA_INIT(COutputView)
//}}AFX_DATA_INIT
}
COutputView::~COutputView()
{
}
void COutputView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COutputView)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COutputView, CFormView)
//{{AFX_MSG_MAP(COutputView)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COutputView diagnostics
#ifdef _DEBUG
void COutputView::AssertValid() const
{
CFormView::AssertValid();
}
void COutputView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CGraphDoc* COutputView::GetDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGraphDoc)));
return (CGraphDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// COutputView message handlers
void COutputView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CGraphDoc* pdoc = GetDocument();
UpdateData(FALSE);
CListCtrl* plist = (CListCtrl*)GetDlgItem(IDC_LIST1);
int i = 0;
LV_ITEM lvitem;
plist->DeleteAllItems();
char p[10];
CString str,str1;
VerNode* pver;
ArcNode* parc;
switch(pdoc->m_ntype){
case 0:
for(pver = pdoc->m_queue.m_phead;pver;pver = pver->m_pnextver){
for(parc = pver->m_pfirstarc;parc;parc = parc->m_pnextarc){
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i++;
lvitem.iSubItem = 0;
str.Format("%d",i);
strcpy(p,str);
lvitem.pszText = p;
plist->InsertItem(&lvitem);
lvitem.iSubItem = 1;
strcpy(p,pver->m_strname);
lvitem.pszText = p;
plist->SetItem(&lvitem);
lvitem.iSubItem = 2;
strcpy(p,parc->m_padjver->m_strname);
lvitem.pszText = p;
plist->SetItem(&lvitem);
lvitem.iSubItem = 3;
str1.Format("%d",parc->info);
strcpy(p,str1);
lvitem.pszText = p;
plist->SetItem(&lvitem);
}//INNER FOR
}//OUTER FOR
break;
case 1:
stack stack1;
for(pver = pdoc->m_queue.m_phead;pver;pver = pver->m_pnextver){
for(parc = pver->m_pfirstarc;parc;parc = parc->m_pnextarc){
if(!stack1.FindInStack(parc->info)){
stack1.Push(parc->info);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = i++;
lvitem.iSubItem = 0;
str.Format("%d",i);
strcpy(p,str);
lvitem.pszText = p;
plist->InsertItem(&lvitem);
lvitem.iSubItem = 1;
strcpy(p,pver->m_strname);
lvitem.pszText = p;
plist->SetItem(&lvitem);
lvitem.iSubItem = 2;
strcpy(p,parc->m_padjver->m_strname);
lvitem.pszText = p;
plist->SetItem(&lvitem);
}//IF
}//FOR INNER
}//FOR OUTER
break;
}//SWITCH
}
void COutputView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
CListCtrl* plist = (CListCtrl*)GetDlgItem(IDC_LIST1);
plist->InsertColumn(0,"标号",LVCFMT_LEFT,40,0);
plist->InsertColumn(1,"起点",LVCFMT_LEFT,45,1);
plist->InsertColumn(2,"终点",LVCFMT_LEFT,45,2);
plist->InsertColumn(3,"权值",LVCFMT_LEFT,40,3);
plist->SetBkColor(RGB(190,187,225));
plist->SetTextBkColor(RGB(190,187,225));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -