Добавление элементов дерева в элемент дерева на основе шага аутентификации
Здравствуйте , у меня есть проблема, описанная ниже :
У меня есть treeview в левой панели и правой панели для отображения различных представлений, связанных с щелкнутыми элементами дерева.
Во-первых :только один элемент true должен отображаться в левой панели.затем ,выполнив шаг проверки подлинности, другие элементы дерева должны быть добавлены к первому элементу дерева .
таким образом , при нажатии на элемент дерева "Connecter" в правой панели отображается представление :шаг аутентификации , при проверке имени пользователя и PSW , другие элементы дерева добавляются в левую панель.
представление аутентификации предназначено для класса CForm :
Моя проблема заключается в том , что при проверке шага аутентификации другой элемент дерева не был добавлен в левую панель .
Я пытаюсь с помощью глобальной переменной получить уведомление о шаге аутентификации , а затем на его основе покажу все элементы дерева или только первый элемент.
Что я уже пробовал:
//<pre>CConnecterView.cpp
void CConnecterView::OnInitialUpdate() { CTreeView::OnInitialUpdate(); globalVar= false; UpdateData(TRUE); CTreeCtrl& tc = GetTreeCtrl(); //CTreeCtrl& tc1 = GetTreeCtrl(); // Set tree control styles //globalVar = false; long style = GetWindowLong(tc.m_hWnd, GWL_STYLE); style |= (TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP); SetWindowLong(tc.m_hWnd, GWL_STYLE, style); HTREEITEM m_hCoonecter; HTREEITEM m_hDefault; //HTREEITEM m_hdeconnecter; m_hDefault = tc.InsertItem(_T(""), TVI_ROOT); m_hCoonecter = tc.InsertItem(_T("Connecter"), TVI_ROOT); if (!globalVar) { HTREEITEM hM, hML, hMNL, hIns, hEn, hMoy, hMax, hCon, hExT, hRe, hCaT, hSAc, hSPa, hJFe, hHor, hFac, hGPe, hGPr, hCDC, hCoupures, hSur, hHisOuverture, hHisDépassementTempérature, hHisMiseTerre, hLogResetsHis, hAff, hCom, hCléAESGCM, hCléCrypAUTHGCM, hParPhyPortLocal, hHDLCPortLocal, hParPhyPortSerie, hParHDLCPortSerie, hImporter, hExporter, hImprimer; //Métrologie hM = tc.InsertItem(_T("Métrologie"), TVI_ROOT); hML = tc.InsertItem(_T("Métrologie Légale"), hM); hMNL = tc.InsertItem(_T("Métrologie Non Légale"), hM); //Métrologie légale hIns = tc.InsertItem(_T("Instantanées"), hML); hEn = tc.InsertItem(_T("Energies"), hML); //Métrologie Non légale hMoy = tc.InsertItem(_T("Moyennes"), hMNL); hMax = tc.InsertItem(_T("Maximas"), hMNL); hCon = tc.InsertItem(_T("Contrat "), hMNL); hExT = tc.InsertItem(_T("Excursion de tension"), hMNL); //Relais hRe = tc.InsertItem(_T("Relais"), TVI_ROOT); //Calendrier Tarifaire hCaT = tc.InsertItem(_T("Calendrier Tarifaire "), TVI_ROOT); hSAc = tc.InsertItem(_T("Structure Active"), hCaT); hSPa = tc.InsertItem(_T("Structure Passive"), hCaT); hJFe = tc.InsertItem(_T("Jours Fériés"), hCaT); //Horodate hHor = tc.InsertItem(_T("Horodate "), TVI_ROOT); //Facturetion hFac = tc.InsertItem(_T("Facturation "), TVI_ROOT); hGPe = tc.InsertItem(_T("Glissement periodique "), hFac); hGPr = tc.InsertItem(_T("Glissement programmé "), hFac); hCDC = tc.InsertItem(_T("Courbe de cahrge "), hFac); hCoupures = tc.InsertItem(_T("Coupures "), hFac); //Surveillance hSur = tc.InsertItem(_T("Surveillance "), TVI_ROOT); hHisOuverture = tc.InsertItem(_T("Historique d'Ouverture "), hSur); hHisDépassementTempérature = tc.InsertItem(_T("Historique de Dépassement de la Température "), hSur); hHisMiseTerre = tc.InsertItem(_T("Historique de mise à terre "), hSur); hLogResetsHis = tc.InsertItem(_T("Log des Resets des historiques "), hSur); //Affichage hAff = tc.InsertItem(_T("Afficahge "), TVI_ROOT); //Communication hCom = tc.InsertItem(_T("Security policy "), TVI_ROOT); hCléAESGCM = tc.InsertItem(_T("CléAES/GCM "), hCom); hCléCrypAUTHGCM = tc.InsertItem(_T("Clé Crypto AUTH pour GCM "), hCom); hParPhyPortLocal = tc.InsertItem(_T("Paramètres physiques du port local "), hCom); hHDLCPortLocal = tc.InsertItem(_T("Paramètres HDLC du port local "), hCom); hParPhyPortSerie = tc.InsertItem(_T("Paramètres physiques du port série "), hCom); hParHDLCPortSerie = tc.InsertItem(_T("Paramètres HDLC du port série"), hCom); hImporter = tc.InsertItem(_T("Importer "), TVI_ROOT); hExporter = tc.InsertItem(_T("Exporter "), TVI_ROOT); hImprimer = tc.InsertItem(_T("Imprimer "), TVI_ROOT); UpdateData(FALSE); } } #endif //_DEBUG
// CForm.cpp
void CForm::OnBnClickedButton1() { UpdateData(TRUE); CMainFrame *pMainFrame = (CMainFrame*)AfxGetMainWnd(); if (m_User_Login == "admin" && m_User_Psw == "admin") { globalVar ; //pMainFrame->pTreeView->m_ctrlTree.Update(); //UpdateData(TRUE); } UpdateData(FALSE); }
Richard MacCutchan
Вам нужно отправить сообщение в TreeView, чтобы сообщить ему об обновлении своего содержимого.
А заявление globalVar ;
это ничего не значит.