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(); }