// // Full Description: void CuDlgEventSettingBottom::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; SORTPARAMS sp; if (pNMListView->iSubItem == 0) { sp.m_nItem = pNMListView->iSubItem; if (m_sortListCtrl.m_nItem == sp.m_nItem) sp.m_bAsc = !m_sortListCtrl.m_bAsc; else sp.m_bAsc = TRUE; memcpy (&m_sortListCtrl, &sp, sizeof(m_sortListCtrl3)); CObArray& arrayEvent = m_cListCtrlFullDesc.GetArrayEvent(); CProgressCtrl cProgress; CfEventSetting* pFrm = (CfEventSetting*)GetParentFrame(); if (pFrm) { CxDlgEventSetting* pDlg = (CxDlgEventSetting*)pFrm->GetParent(); if (pDlg && IsWindow (pDlg->m_cStaticProgress.m_hWnd)) { CRect rc; pDlg->m_cStaticProgress.GetWindowRect(rc); pDlg->ScreenToClient(rc); VERIFY (cProgress.Create(WS_CHILD | WS_VISIBLE, rc, pDlg, 1)); } } IVM_DichotomySort(arrayEvent, CompareSubItem, (LPARAM)&m_sortListCtrl, &cProgress); m_cListCtrlFullDesc.Sort ((LPARAM)&m_sortListCtrl, CompareSubItem); } *pResult = 0; }
void CuDlgParameterInstallationExtra::RefreshParameter() { try { int nTopIndex = m_cListCtrl.GetTopIndex(); m_cListCtrl.HideProperty(FALSE); m_cListCtrl.DeleteAllItems(); while (!m_listParameter.IsEmpty()) delete m_listParameter.RemoveHead(); if (theApp.m_ingresVariable.QueryEnvironment (m_listParameter, FALSE, TRUE)) { // // Sort the parameter: CaEnvironmentParameter* pParam = NULL; CObArray a; int i, indx, nCount = 0; if (!m_listParameter.IsEmpty()) { a.SetSize(m_listParameter.GetCount()); POSITION pos = m_listParameter.GetHeadPosition(); while (pos != NULL) { pParam = (CaEnvironmentParameter*)m_listParameter.GetNext(pos); if (pParam->GetName().CompareNoCase(_T("II_NUM_OF_PROCESSORS"))==0) pParam->LoadDescription(IDS_II_NUM_OF_PROCESSORS); else if (pParam->GetName().CompareNoCase(_T("II_MAX_SEM_LOOPS"))==0) pParam->LoadDescription(IDS_II_MAX_SEM_LOOPS); a[nCount] = pParam; nCount++; } if (a.GetSize() > 1) IVM_DichotomySort(a, CompareSubItem, (LPARAM)&m_sortparam, NULL); } else return; for (i=0; i< a.GetSize(); i++) { pParam = (CaEnvironmentParameter*)a[i]; nCount = m_cListCtrl.GetItemCount(); indx = m_cListCtrl.InsertItem (nCount, pParam->GetName(), IM_ENV_SYSTEM); if (indx != -1) { m_cListCtrl.SetItemText (indx, 1, pParam->GetValue()); m_cListCtrl.SetItemText (indx, 2, pParam->GetDescription()); m_cListCtrl.SetItemData (indx, (DWORD_PTR)pParam); } } if (nTopIndex != -1) { CRect r; m_cListCtrl.GetItemRect (0, r, LVIR_BOUNDS); m_cListCtrl.Scroll (CSize(0, nTopIndex*r.Height())); } } } catch (...) { AfxMessageBox (_T("System error (CuDlgParameterInstallationExtra::RefreshParameter): \nRefresh parameter failed")); } }