www.gusucode.com > 一个简单的VC++程序安装向导源代码源码程序 > 一个简单的VC++程序安装向导源代码/dog/dog/MyDlg4.cpp

    // MyDlg4.cpp : implementation file
// Download by http://www.codesc.net

#include "stdafx.h"
#include "dog.h"
#include "MyDlg3.h"
#include "MyDlg4.h"
#include "MyDlg5.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyDlg4 dialog


CMyDlg4::CMyDlg4(CWnd* pParent /*=NULL*/)
	: CDialog(CMyDlg4::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMyDlg4)
	m_CurPath = _T("");
	//}}AFX_DATA_INIT
}


void CMyDlg4::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyDlg4)
	DDX_Control(pDX, ID_PATH_TREE, m_Path_TreeCtrl);
	DDX_Text(pDX, IDC_EDIT1, m_CurPath);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMyDlg4, CDialog)
	//{{AFX_MSG_MAP(CMyDlg4)
	ON_NOTIFY(TVN_SELCHANGED, ID_PATH_TREE, OnSelchangedPathTree)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyDlg4 message handlers

BOOL CMyDlg4::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
    TV_INSERTSTRUCT TreeCtrlItem;
	HTREEITEM hTreeItem;
	TreeCtrlItem.hInsertAfter=TVI_LAST;
	TreeCtrlItem.item.mask=TVIF_TEXT|TVIF_PARAM;
	//第一级
	TreeCtrlItem.hParent=TVI_ROOT;//父级为根部
	CString Disk="C:";
	TreeCtrlItem.item.pszText=Disk.GetBuffer(30);
	TreeCtrlItem.item.lParam=1;   //对于根目录,设置为1
	hTreeItem=m_Path_TreeCtrl.InsertItem(&TreeCtrlItem);
	//第二级
	TreeCtrlItem.hParent=hTreeItem;
	TreeCtrlItem.item.lParam=10;  //对于子目录,设置为10
	strcpy(TreeCtrlItem.item.pszText,"Windows");
	m_Path_TreeCtrl.InsertItem(&TreeCtrlItem);
	strcpy(TreeCtrlItem.item.pszText,"DOS");
	m_Path_TreeCtrl.InsertItem(&TreeCtrlItem);
	TreeCtrlItem.hParent=TVI_ROOT;
	TreeCtrlItem.item.pszText="D:";
	TreeCtrlItem.item.lParam=1;
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CMyDlg4::OnSelchangedPathTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
    CString tempstring;
	//获取当前条目的文本
	HTREEITEM CurItem=m_Path_TreeCtrl.GetSelectedItem();
	TV_ITEM TreeCtrlItem;
	TreeCtrlItem.hItem=CurItem;
	m_Path_TreeCtrl.GetItem(&TreeCtrlItem);
	tempstring=m_Path_TreeCtrl.GetItemText(m_Path_TreeCtrl.GetSelectedItem());

	long CurlParam=TreeCtrlItem.lParam;
	//当前条目号
	if(CurlParam!=1)       //子目录
	{
		TreeCtrlItem.hItem=
			m_Path_TreeCtrl.GetParentItem(m_Path_TreeCtrl.GetSelectedItem());
		m_Path_TreeCtrl.GetItem(&TreeCtrlItem);
		CurItem=TreeCtrlItem.hItem;
		m_CurPath=m_Path_TreeCtrl.GetItemText(CurItem);
		m_CurPath+="\\";
		m_CurPath+=tempstring;
	}
	else //根目录
	{
		m_CurPath=tempstring;
	}
	UpdateData(FALSE);  //更新控件中的值
	*pResult = 0;
}

void CMyDlg4::OnButton1() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnOK();
	//添加调用第二页的代码
	CMyDlg3 dlg3;
	dlg3.DoModal();		
}

void CMyDlg4::OnButton2() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnOK();
	CMyDlg5 dlg5;
	dlg5.DoModal();		
}

void CMyDlg4::OnButton3() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();	
}