?? lefttreedisp.cpp
字號:
// LeftTreeDisp.cpp : implementation file
//
#include "stdafx.h"
#include "mcds.h"
#include "LeftTreeDisp.h"
#include "TreeDlg.h"
#include "GlobalVarDef.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp
IMPLEMENT_DYNCREATE(CLeftTreeDisp, CTreeView)
CLeftTreeDisp::CLeftTreeDisp()
{
}
CLeftTreeDisp::~CLeftTreeDisp()
{
}
BEGIN_MESSAGE_MAP(CLeftTreeDisp, CTreeView)
//{{AFX_MSG_MAP(CLeftTreeDisp)
ON_WM_LBUTTONDBLCLK()
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp drawing
void CLeftTreeDisp::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp diagnostics
#ifdef _DEBUG
void CLeftTreeDisp::AssertValid() const
{
CTreeView::AssertValid();
}
void CLeftTreeDisp::Dump(CDumpContext& dc) const
{
CTreeView::Dump(dc);
}
CMcdsDoc* CLeftTreeDisp::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMcdsDoc)));
return (CMcdsDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CLeftTreeDisp message handlers
void CLeftTreeDisp::OnInitialUpdate() //在file new時會調(diào)用該函數(shù)
{
CTreeView::OnInitialUpdate();
CTreeCtrl& thCtrl=GetTreeCtrl();
thCtrl.DeleteAllItems();//保證在新創(chuàng)建文檔時不會重復(fù)創(chuàng)建該tree
//修改TreeCtrl的style
DWORD newstyle=TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES ;
thCtrl.ModifyStyle(NULL,newstyle);
//添加顯示內(nèi)容
MarkTreeItemNum[0]=thCtrl.InsertItem(_T(strTextInfo[0]),0,1);
MarkTreeItemNum[1]=thCtrl.InsertItem(_T(strTextInfo[1]),0,1,MarkTreeItemNum[0],TVI_LAST);
MarkTreeItemNum[2]=thCtrl.InsertItem(_T(strTextInfo[2]+nNumInfo[2]),0,1,MarkTreeItemNum[0],TVI_LAST);
thCtrl.Expand(MarkTreeItemNum[0],TVE_EXPAND);
MarkTreeItemNum[3]=thCtrl.InsertItem(_T(strTextInfo[3]),0,1,MarkTreeItemNum[0],TVI_LAST);
MarkTreeItemNum[4]=thCtrl.InsertItem(_T(strTextInfo[4]),0,1,MarkTreeItemNum[3],TVI_LAST);
MarkTreeItemNum[5]=thCtrl.InsertItem(_T(strTextInfo[5]),0,1,MarkTreeItemNum[3],TVI_LAST);
// thCtrl.Expand(MarkTreeItemNum[3],TVE_EXPAND); //不展開屏蔽該語句
MarkTreeItemNum[6]=thCtrl.InsertItem(_T(strTextInfo[6]),0,1);
MarkTreeItemNum[7]=thCtrl.InsertItem(_T(strTextInfo[7]+nNumInfo[7]),0,1,MarkTreeItemNum[6],TVI_LAST);
MarkTreeItemNum[8]=thCtrl.InsertItem(_T(strTextInfo[8]+nNumInfo[8]),0,1,MarkTreeItemNum[6],TVI_LAST);
MarkTreeItemNum[9]=thCtrl.InsertItem(_T(strTextInfo[9]+nNumInfo[9]),0,1,MarkTreeItemNum[6],TVI_LAST);
MarkTreeItemNum[10]=thCtrl.InsertItem(_T(strTextInfo[10]+nNumInfo[10]),0,1,MarkTreeItemNum[6],TVI_LAST);
thCtrl.Expand(MarkTreeItemNum[6],TVE_EXPAND);
MarkTreeItemNum[11]=thCtrl.InsertItem(_T(strTextInfo[11]),0,1);
MarkTreeItemNum[12]=thCtrl.InsertItem(_T(strTextInfo[12]+nNumInfo[12]),0,1,MarkTreeItemNum[11],TVI_LAST);
MarkTreeItemNum[13]=thCtrl.InsertItem(_T(strTextInfo[13]+nNumInfo[13]),0,1,MarkTreeItemNum[11],TVI_LAST);
thCtrl.Expand(MarkTreeItemNum[11],TVE_EXPAND);
MarkTreeItemNum[14]=thCtrl.InsertItem(_T(strTextInfo[14]),0,1);
MarkTreeItemNum[15]=thCtrl.InsertItem(_T(strTextInfo[15]+nNumInfo[15]),0,1,MarkTreeItemNum[14],TVI_LAST);
MarkTreeItemNum[16]=thCtrl.InsertItem(_T(strTextInfo[16]+nNumInfo[16]),0,1,MarkTreeItemNum[14],TVI_LAST);
MarkTreeItemNum[17]=thCtrl.InsertItem(_T(strTextInfo[17]+nNumInfo[17]),0,1,MarkTreeItemNum[14],TVI_LAST);
MarkTreeItemNum[18]=thCtrl.InsertItem(_T(strTextInfo[18]+nNumInfo[18]),0,1,MarkTreeItemNum[14],TVI_LAST);
thCtrl.Expand(MarkTreeItemNum[14],TVE_EXPAND);
MarkTreeItemNum[19]=thCtrl.InsertItem(_T(strTextInfo[19]),0,1);
MarkTreeItemNum[20]=thCtrl.InsertItem(_T(strTextInfo[20]+nNumInfo[20]),0,1,MarkTreeItemNum[19],TVI_LAST);
MarkTreeItemNum[21]=thCtrl.InsertItem(_T(strTextInfo[21]+nNumInfo[21]),0,1,MarkTreeItemNum[19],TVI_LAST);
MarkTreeItemNum[22]=thCtrl.InsertItem(_T(strTextInfo[22]+nNumInfo[22]),0,1,MarkTreeItemNum[19],TVI_LAST);
// MarkTreeItemNum[23]=thCtrl.InsertItem(_T(strTextInfo[23]+nNumInfo[23]),0,1,MarkTreeItemNum[19],TVI_LAST);
// MarkTreeItemNum[24]=thCtrl.InsertItem(_T(strTextInfo[24]+nNumInfo[24]),0,1,MarkTreeItemNum[19],TVI_LAST);
// MarkTreeItemNum[25]=thCtrl.InsertItem(_T(strTextInfo[25]+nNumInfo[25]),0,1,MarkTreeItemNum[19],TVI_LAST);
// MarkTreeItemNum[26]=thCtrl.InsertItem(_T(strTextInfo[26]+nNumInfo[26]),0,1,MarkTreeItemNum[19],TVI_LAST);
thCtrl.Expand(MarkTreeItemNum[19],TVE_EXPAND);
}
void CLeftTreeDisp::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
// TODO: Add your specialized code here and/or call the base class
CTreeCtrl& thCtrl=GetTreeCtrl();
for(int i=0;i<=22;i++)
{
if (lsUpdate[i]==true)
{
if(i==2||i==7||i==9)cs.Lock();
thCtrl.SetItemText(MarkTreeItemNum[i],strTextInfo[i]+nNumInfo[i]);
lsUpdate[i]=false;
if(i==2||i==7||i==9)cs.Unlock();
}
}
}
void CLeftTreeDisp::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CTreeView::OnLButtonDblClk(nFlags, point);
}
void CLeftTreeDisp::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CTreeCtrl& thCtrl=GetTreeCtrl();
HTREEITEM TreeItem=thCtrl.GetSelectedItem();
int currentNum=TreeItemNum(TreeItem);
if(currentNum==7
||currentNum==9
||currentNum==12
||currentNum==20
||currentNum==21)//這幾項是可以更改的幾項
{
nExNum=currentNum;//標(biāo)志當(dāng)前所操作的內(nèi)容,傳到對話框
CTreeDlg TreeDlg;
if(TreeDlg.DoModal()==IDOK)
{
lsUpdate[nExNum]=true;
if(nExNum==20||nExNum==21)
{
char temp[15];
_itoa(atoi(nNumInfo[21])-atoi(nNumInfo[20])+1,temp,10);
nNumInfo[22]=temp;
lsUpdate[22]=true;
}
if(nExNum==12)
{
char temp[15];
_itoa(m_data[atoi(nNumInfo[12])],temp,10);
nNumInfo[13]=temp;
lsUpdate[13]=true;
}
GetDocument()->UpdateAllViews(NULL);
};
}
*pResult = 0;
}
int CLeftTreeDisp::TreeItemNum(HTREEITEM TreeItem)
{
for(int i=0;i<=22;i++)
{
if(TreeItem==MarkTreeItemNum[i])break;
}
if(i==23)return 0;
else return i;
}
int CLeftTreeDisp::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CTreeView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -