MFC 樹形控制元件與列表控制元件
阿新 • • 發佈:2019-02-12
初始化區域程式碼:
// TODO: 在此新增額外的初始化程式碼 srand(time(NULL)); // 新增點陣圖資源,必須要全域性變數才行 m_treeImageListRoot.Create(IDB_BITMAP1, 24, 0, RGB(0, 255, 0)); m_treeImageListSon.Create(IDB_BITMAP2, 24, 1, RGB(0, 255, 0)); m_tree.SetImageList(&m_treeImageListSon, TVSIL_NORMAL); // 一級控制元件 CString strRoot[4] = { L"朋友", L"同事", L"同學", L"家人" }; for (int i = 0; i < 4; i++){ hRoot[i] = m_tree.InsertItem(strRoot[i], 0, 0); m_tree.SetItemData(hRoot[i], (DWORD)(i+100)); } static int first = 1; static int num = 0; // 二級控制元件 CString firstName[12] = { L"趙",L"褚", L"錢", L"孫", L"李", L"周" ,L"吳",L"衛",L"陳",L"馮",L"王",L"鄭"}; CString secondName[14] = { L"同", L"蟻", L"戢", L"止", L"己", L"潛", L"肖", L"泣", L"塗", L"種", L"冼", L"睢", L"地", L"根" }; CString thridName[20] = { L"", L"", L"", L"", L"", L"", L"", L"蔡", L"餘", L"杜", L"葉", L"程", L"蘇", L"魏", L"呂", L"丁", L"任", L"沈" ,L""}; for (int i = 0; i < 4; i++){ for (int j = 0; j < 4; j++){ childTree = m_tree.InsertItem(firstName[rand() % 12]+secondName[rand()%14]+thridName[rand()%20], 0, 0, hRoot[i], TVI_LAST); m_tree.SetItemData(childTree, (DWORD)(num++)); if (first){ first = 0; activeTree = childTree; } } } // 設定選定項 m_tree.Select(activeTree, TVGN_CARET); // 列表控制元件 m_list.InsertColumn(0,L"類 別", LVCFMT_LEFT, 100); m_list.InsertColumn(1,L"描 述", LVCFMT_LEFT, 150); // 修改風格 m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
雙擊樹形控制元件:
void CContactProcDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); // TODO: 在此新增控制元件通知處理程式程式碼 HTREEITEM SetItem; CString Name = L""; CString Num = L""; CString Age = L""; SetItem = m_tree.GetSelectedItem(); DWORD data = m_tree.GetItemData(SetItem); Name = m_tree.GetItemText(SetItem); // 獲取名字 Num.Format(L"ECJTU2015211000%d%d", data%10,data/10); // 學號 Age.Format(L"%d", rand() % 20 + 20); // 年齡 m_list.DeleteAllItems(); m_list.InsertItem(0, L"姓名:"); m_list.SetItemText(0, 1, Name); m_list.InsertItem(1, L"學號:"); m_list.SetItemText(1, 1, Num); m_list.InsertItem(2, L"性別:"); m_list.SetItemText(2, 1, rand() % 2 ? L"男" : L"女"); m_list.InsertItem(3, L"年齡:"); m_list.SetItemText(3, 1, Age); *pResult = 0; }
此外添加了一個位圖資源。