| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- // TreeCtrlDlg.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "TreeCtrlDlg.h"
- #include "Resource.h"
- // CTreeCtrlDlg 对话框
- IMPLEMENT_DYNAMIC(CTreeCtrlDlg, CDlgControlItem)
- CTreeCtrlDlg::CTreeCtrlDlg(CWnd* pParent /*=NULL*/)
- : CDlgControlItem(IDD_TREE, pParent)
- {
- }
- CTreeCtrlDlg::~CTreeCtrlDlg()
- {
- }
- void CTreeCtrlDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDlgControlItem::DoDataExchange(pDX);
- DDX_Control(pDX,IDC_TREE1,m_TreeCtrl);
- DDX_Control(pDX,IDC_TREE2,m_TreeCtrl1);
- }
- BEGIN_MESSAGE_MAP(CTreeCtrlDlg, CDlgControlItem)
- ON_BN_CLICKED(IDC_BUTTON1, &CTreeCtrlDlg::OnBnClickedButton1)
- ON_BN_CLICKED(IDC_BUTTON14, &CTreeCtrlDlg::OnBnClickedButton14)
- ON_BN_CLICKED(IDC_BUTTON2, &CTreeCtrlDlg::OnBnClickedButton2)
- ON_BN_CLICKED(IDC_BUTTON3, &CTreeCtrlDlg::OnBnClickedButton3)
- ON_BN_CLICKED(IDC_BUTTON4, &CTreeCtrlDlg::OnBnClickedButton4)
- ON_BN_CLICKED(IDC_BUTTON5, &CTreeCtrlDlg::OnBnClickedButton5)
- ON_BN_CLICKED(IDC_BUTTON10, &CTreeCtrlDlg::OnBnClickedButton10)
- ON_BN_CLICKED(IDC_BUTTON11, &CTreeCtrlDlg::OnBnClickedButton11)
- ON_BN_CLICKED(IDC_BUTTON21, &CTreeCtrlDlg::OnBnClickedButton21)
- ON_BN_CLICKED(IDC_BUTTON22, &CTreeCtrlDlg::OnBnClickedButton22)
- ON_BN_CLICKED(IDC_BUTTON7, &CTreeCtrlDlg::OnBnClickedButton7)
- ON_BN_CLICKED(IDC_BUTTON13, &CTreeCtrlDlg::OnBnClickedButton13)
- END_MESSAGE_MAP()
- // CTreeCtrlDlg 消息处理程序
- BOOL CTreeCtrlDlg::OnInitDialog()
- {
- CDlgControlItem::OnInitDialog();
- //设置属性
- m_TreeCtrl.SetItemHeight(26);
- //加载图标
- if (m_StatusImage.GetSafeHandle()==NULL)
- {
- CBitmap Image;
- BITMAP ImageInfo;
- Image.LoadBitmap(IDB_SERVER_LIST_IMAGE);
- Image.GetBitmap(&ImageInfo);
- m_StatusImage.Create(18,ImageInfo.bmHeight,ILC_COLOR16|ILC_MASK,0,0);
- m_StatusImage.Add(&Image,RGB(255,0,255));
- m_TreeCtrl.SetImageList(&m_StatusImage,TVSIL_NORMAL);
- }
- //父节点
- HTREEITEM Root=m_TreeCtrl.InsertItem(TEXT("gym游戏中心"),0,0,TVI_ROOT,TVI_LAST);
- //斗地主游戏
- HTREEITEM GameItem1=m_TreeCtrl.InsertItem(TEXT("斗地主"),7,6,Root,TVI_LAST);
-
- HTREEITEM Room_Item1_1=m_TreeCtrl.InsertItem(TEXT("网通站点"),8,6,GameItem1,TVI_LAST);
- HTREEITEM Room_Item1_1_1=m_TreeCtrl.InsertItem(TEXT("初级房"),9,6,Room_Item1_1,TVI_LAST);
- HTREEITEM Room_Item1_1_2=m_TreeCtrl.InsertItem(TEXT("高级房"),9,6,Room_Item1_1,TVI_LAST);
- HTREEITEM Room_Item1_1_3=m_TreeCtrl.InsertItem(TEXT("VIP房"),9,6,Room_Item1_1,TVI_LAST);
-
-
- HTREEITEM Room_Item1_2=m_TreeCtrl.InsertItem(TEXT("电信站点"),8,6,GameItem1,TVI_LAST);
- HTREEITEM Room_Item1_2_1=m_TreeCtrl.InsertItem(TEXT("没有合适的房间"),9,6,Room_Item1_2,TVI_LAST);
- HTREEITEM Room_Item1_3=m_TreeCtrl.InsertItem(TEXT("其他站点"),8,6,GameItem1,TVI_LAST);
- HTREEITEM Room_Item1_3_1=m_TreeCtrl.InsertItem(TEXT("没有合适的房间"),9,6,Room_Item1_3,TVI_LAST);
- //虎虎生威游戏
- HTREEITEM GameItem2=m_TreeCtrl.InsertItem(TEXT("虎虎生威"),7,6,Root,TVI_LAST);
- HTREEITEM Room_Item2_1=m_TreeCtrl.InsertItem(TEXT("没有合适的站点"),8,6,GameItem2,TVI_LAST);
- //百人牌九游戏
- HTREEITEM GameItem3=m_TreeCtrl.InsertItem(TEXT("百人牌九"),7,6,Root,TVI_LAST);
- HTREEITEM Room_Item3_1=m_TreeCtrl.InsertItem(TEXT("没有合适的站点"),8,6,GameItem3,TVI_LAST);
- //展开所有节点
- ExpandAllItem(&m_TreeCtrl,m_TreeCtrl.GetRootItem());
- //m_TreeCtrl.SetButtonImage(TEXT("Res\\TreeCtrl\\Button.png"));
- //////////////////////////////////////////////////////////////////////////
- //重绘控件
- InitTree();
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- int CTreeCtrlDlg::SetItemHeight(HTREEITEM hItem)
- {
- int nOldHeight = m_TreeCtrl.GetItemHeight();
- TVITEMEX itemEx;
- itemEx.mask = TVIF_INTEGRAL;
- itemEx.hItem = hItem;
- itemEx.iIntegral = 2;
- BOOL bRet = (BOOL)m_TreeCtrl.SendMessage(TVM_SETITEM, 0, LPARAM(&itemEx));
- return bRet ? 0 : -1;
- }
- void CTreeCtrlDlg::ExpandAllItem(CTreeCtrl *pTreeCtrl,HTREEITEM hTreeItem,bool bExpand /*= true*/)
- {
- if( pTreeCtrl == NULL && pTreeCtrl->GetSafeHwnd() == NULL ) return;
- if(!pTreeCtrl->ItemHasChildren(hTreeItem)) return;
- HTREEITEM hNextItem = pTreeCtrl->GetChildItem(hTreeItem);
-
- while (hNextItem != NULL)
- {
- ExpandAllItem(pTreeCtrl,hNextItem);
- hNextItem = pTreeCtrl->GetNextItem(hNextItem, TVGN_NEXT);
- }
- pTreeCtrl->Expand(hTreeItem,bExpand?TVE_EXPAND:TVE_COLLAPSE);
- }
- void CTreeCtrlDlg::OnBnClickedButton1()
- {
- ExpandAllItem(&m_TreeCtrl,m_TreeCtrl.GetRootItem(),true);
- }
- void CTreeCtrlDlg::OnBnClickedButton14()
- {
- ExpandAllItem(&m_TreeCtrl,m_TreeCtrl.GetRootItem(),false);
- }
- void CTreeCtrlDlg::OnBnClickedButton2()
- {
- HTREEITEM hSelectItem = m_TreeCtrl.GetSelectedItem();
- m_TreeCtrl.DeleteItem(hSelectItem);
- }
- void CTreeCtrlDlg::OnBnClickedButton3()
- {
- m_TreeCtrl.DeleteAllItems();
- }
- void CTreeCtrlDlg::OnBnClickedButton4()
- {
- CString str;
- str.Format(TEXT("节点的总数量为:%d"),m_TreeCtrl.GetCount());
- AfxMessageBox(str);
- }
- void CTreeCtrlDlg::OnBnClickedButton5()
- {
- m_TreeCtrl.SetBkColor(RGB(255,0,0));
- }
- void CTreeCtrlDlg::OnBnClickedButton10()
- {
- m_TreeCtrl.SetTextColor(RGB(0,0,255));
- }
- void CTreeCtrlDlg::OnBnClickedButton11()
- {
- if ( m_TreeCtrl.GetParentItem(m_TreeCtrl.GetSelectedItem()) )
- AfxMessageBox(TEXT("有父节点"));
- else AfxMessageBox(TEXT("无父节点"));
- }
- void CTreeCtrlDlg::OnBnClickedButton21()
- {
- if ( m_TreeCtrl.ItemHasChildren(m_TreeCtrl.GetSelectedItem()) )
- AfxMessageBox(TEXT("有子节点"));
- else AfxMessageBox(TEXT("无子节点"));
- }
- void CTreeCtrlDlg::OnBnClickedButton22()
- {
- AfxMessageBox(m_TreeCtrl.GetItemText(m_TreeCtrl.GetSelectedItem()));
- }
- void CTreeCtrlDlg::OnBnClickedButton7()
- {
- if ( m_TreeCtrl.GetCheck(m_TreeCtrl.GetSelectedItem()) )
- AfxMessageBox(TEXT("被Check"));
- else AfxMessageBox(TEXT("无Check"));
- }
- void CTreeCtrlDlg::OnBnClickedButton13()
- {
- DWORD dwAddStyle = m_TreeCtrl.GetStyle();
- DWORD dwRemoveStyle = 0;
- SetStyle(IDC_CHECK2,TVS_CHECKBOXES,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK4,TVS_HASBUTTONS,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK5,TVS_HASLINES,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK8,TVS_DISABLEDRAGDROP,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK7,TVS_EDITLABELS,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK6,TVS_LINESATROOT,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK9,TVS_SHOWSELALWAYS,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK10,TVS_TRACKSELECT,dwAddStyle, dwRemoveStyle);
- SetStyle(IDC_CHECK11,TVS_FULLROWSELECT,dwAddStyle, dwRemoveStyle);
- m_TreeCtrl.ModifyStyle(0,dwAddStyle);
- m_TreeCtrl.ModifyStyle(dwRemoveStyle,0);
-
- if ( dwRemoveStyle & TVS_CHECKBOXES)
- RemoveCheck(m_TreeCtrl.GetRootItem());
- }
- void CTreeCtrlDlg::SetStyle( UINT ID,DWORD dwStyle,DWORD &dwAddStyle, DWORD &dwRemoveStyle )
- {
- if ( IsDlgButtonChecked(ID))
- dwAddStyle |= dwStyle;
- else if( dwAddStyle & dwStyle)
- dwRemoveStyle |= dwStyle;
- }
- void CTreeCtrlDlg::RemoveCheck( HTREEITEM hTreeItem )
- {
- m_TreeCtrl.SetItemState(hTreeItem ,INDEXTOSTATEIMAGEMASK(0), TVIS_STATEIMAGEMASK);
- HTREEITEM hNextItem = m_TreeCtrl.GetChildItem(hTreeItem);
- while (hNextItem != NULL)
- {
- m_TreeCtrl.SetItemState(hNextItem ,INDEXTOSTATEIMAGEMASK(0), TVIS_STATEIMAGEMASK);
- RemoveCheck(hNextItem);
- hNextItem = m_TreeCtrl.GetNextItem(hNextItem, TVGN_NEXT);
- }
- }
- void CTreeCtrlDlg::InitTree()
- {
- m_TreeCtrl1.SetItemHeight(26);
- m_TreeCtrl1.SetImageList(&m_StatusImage,TVSIL_NORMAL);
- HTREEITEM Root1=m_TreeCtrl1.InsertItem(TEXT("我的下载"),0,0,TVI_ROOT,TVI_LAST);
- HTREEITEM GameItem1=m_TreeCtrl1.InsertItem(TEXT("全部任务"),7,6,Root1,TVI_LAST);
- HTREEITEM GameItem2=m_TreeCtrl1.InsertItem(TEXT("正在下载"),7,6,Root1,TVI_LAST);
- HTREEITEM GameItem3=m_TreeCtrl1.InsertItem(TEXT("已完成"),7,6,Root1,TVI_LAST);
- HTREEITEM Room_Item3_1=m_TreeCtrl1.InsertItem(TEXT("影视"),8,6,GameItem3,TVI_LAST);
- HTREEITEM Room_Item3_2=m_TreeCtrl1.InsertItem(TEXT("音乐"),8,6,GameItem3,TVI_LAST);
- HTREEITEM Room_Item3_3=m_TreeCtrl1.InsertItem(TEXT("软件"),8,6,GameItem3,TVI_LAST);
- HTREEITEM Room_Item3_4=m_TreeCtrl1.InsertItem(TEXT("游戏"),8,6,GameItem3,TVI_LAST);
- HTREEITEM GameItem4=m_TreeCtrl1.InsertItem(TEXT("私人空间"),7,6,Root1,TVI_LAST);
- HTREEITEM GameItem5=m_TreeCtrl1.InsertItem(TEXT("垃圾箱"),7,6,Root1,TVI_LAST);
- HTREEITEM GameItem6=m_TreeCtrl1.InsertItem(TEXT("iPad视频"),7,6,Root1,TVI_LAST);
- HTREEITEM Root2=m_TreeCtrl1.InsertItem(TEXT("远程服务"),0,0,TVI_ROOT,TVI_LAST);
- HTREEITEM ServerItem1=m_TreeCtrl1.InsertItem(TEXT("离线下载"),7,6,Root2,TVI_LAST);
- HTREEITEM ServerItem2=m_TreeCtrl1.InsertItem(TEXT("高清片库"),7,6,Root2,TVI_LAST);
- HTREEITEM Root3=m_TreeCtrl1.InsertItem(TEXT("移动设备"),0,0,TVI_ROOT,TVI_LAST);
- HTREEITEM DeviceItem1=m_TreeCtrl1.InsertItem(TEXT("连接向导"),7,6,Root3,TVI_LAST);
- HTREEITEM DeviceItem2=m_TreeCtrl1.InsertItem(TEXT("我的iPad"),7,6,Root3,TVI_LAST);
-
- ExpandAllItem(&m_TreeCtrl1,Root1);
- ExpandAllItem(&m_TreeCtrl1,Root2);
- ExpandAllItem(&m_TreeCtrl1,Root3);
- //+-按钮
- m_TreeCtrl1.SetButtonImage(TEXT("Res\\TreeCtrl\\Button.png"));
- m_TreeCtrl1.SetHovenImage(TEXT("Res\\TreeCtrl\\LIST_ITEM_SELECT.png"),CRect(2,2,2,2));
- m_TreeCtrl1.SetPressImage(TEXT("Res\\TreeCtrl\\LIST_ITEM_DOWN.png"),CRect(2,2,2,2));
- m_TreeCtrl1.SetScrollImage(&m_TreeCtrl1,TEXT("Res\\Scroll\\SKIN_SCROLL.bmp"));
- m_TreeCtrl1.m_colNormalText = RGB(1,55,102);
- //插入图标
- m_TreeCtrl1.InsertImage(DeviceItem2,TEXT("Res\\TreeCtrl\\offdown_lefttab.png"));
- m_TreeCtrl1.InsertImage(ServerItem1,TEXT("Res\\TreeCtrl\\offdown_lefttab.png"));
- m_TreeCtrl1.InsertImage(GameItem6,TEXT("Res\\TreeCtrl\\offdown_lefttab.png"));
- }
|