void CStcGroup::GetCurrentData ( DWORD Index, COLORREF *TextColor, COLORREF*BackColor ) { if ( m_pCurrentDataValues == NULL ) { return; } DWORD Length = m_pCurrentDataValues->ValuesSize; if ( Length == 0 ) return; if ( Length <= Index ) return; char *pVal = (char *)GlobalLock( m_pCurrentDataValues->Values ); if ( pVal == NULL ) return; WORD tChar = pVal[Index]; // WORD tChar = m_pCurrentDataValues->Values[Index]; GlobalUnlock( m_pCurrentDataValues->Values ); CMapWordToPtr *pCM = m_pCurrentDataValues->pColorMap; void *pv; if ( !pCM->Lookup ( tChar, pv ) ) return; StcColorMapValue* pCMV = (StcColorMapValue *)pv; *TextColor = pCMV->TextColor; *BackColor = pCMV->BackColor; }
BOOL CQuoteColumnSetting::SaveCurGroup(CString strGroupName /* = _T */) { if (!m_bCurChanged) { return FALSE; } if (strGroupName.IsEmpty()) { m_wndCurGroup.GetWindowText(strGroupName); } //CArray<CStringArray*,CStringArray*> ayNewColGroup; CUIntArray ayNewColGroup; CMapWordToPtr mapFixedCol; //CString strTemp; // 生成所有显示列项 for (int i=0; i<m_wndCurGroupCol.GetItemCount(); i++) { //CStringArray* pCol = new CStringArray; CUIntArray* pAyCol = new CUIntArray; LVITEM item; ZeroMemory(&item,sizeof(LVITEM)); item.mask = LVIF_PARAM | LVIF_IMAGE; item.iItem = i; m_wndCurGroupCol.GetItem(&item); int nID = (int)item.lParam; pAyCol->Add(nID); //strTemp.Format("%d",nID); //pCol->Add(strTemp); long nWidth = (long)item.iImage; nWidth = nWidth>0 ? nWidth : m_iCol->GetColumnWidth(nID); pAyCol->Add(nWidth); //strTemp.Format("%d",nWidth); //pCol->Add(strTemp); if (CQuoteReportTable::IsFixedColumn(nID)) // 判断是否固定列 { mapFixedCol.SetAt(nID,(void*)pAyCol); // 固定列暂时放入哈希表,后面处理 } else { ayNewColGroup.Add(nID); ayNewColGroup.Add(nWidth); //ayNewColGroup.Add(pCol); // 正常列直接放入数组 } } if (mapFixedCol.GetCount() > 0) // 处理固定列 { int nID = 0; //CStringArray* payTempCol = NULL; CUIntArray* pAyCol = NULL; if (mapFixedCol.Lookup(COLUMN_HQ_BASE_ARROW,(void*&)pAyCol) && pAyCol) { ayNewColGroup.InsertAt(0, pAyCol->GetAt(0)); ayNewColGroup.InsertAt(1, pAyCol->GetAt(1)); delete pAyCol; mapFixedCol.RemoveKey(COLUMN_HQ_BASE_ARROW); //ayNewColGroup.InsertAt(0,payTempCol); } if (mapFixedCol.Lookup(COLUMN_HQ_BASE_INFO_MARK,(void*&)pAyCol) && pAyCol) { ayNewColGroup.InsertAt(0, pAyCol->GetAt(0)); ayNewColGroup.InsertAt(1, pAyCol->GetAt(1)); delete pAyCol; mapFixedCol.RemoveKey(COLUMN_HQ_BASE_INFO_MARK); } if (mapFixedCol.Lookup(COLUMN_HQ_BASE_NAME,(void*&)pAyCol) && pAyCol) { ayNewColGroup.InsertAt(0, pAyCol->GetAt(0)); ayNewColGroup.InsertAt(1, pAyCol->GetAt(1)); delete pAyCol; mapFixedCol.RemoveKey(COLUMN_HQ_BASE_NAME); } if (mapFixedCol.Lookup(COLUMN_HQ_BASE_CODE,(void*&)pAyCol) && pAyCol) { ayNewColGroup.InsertAt(0, pAyCol->GetAt(0)); ayNewColGroup.InsertAt(1, pAyCol->GetAt(1)); delete pAyCol; mapFixedCol.RemoveKey(COLUMN_HQ_BASE_CODE); } if (mapFixedCol.Lookup(COLUMN_HQ_BASE_NUMBER,(void*&)pAyCol) && pAyCol) { ayNewColGroup.InsertAt(0, pAyCol->GetAt(0)); ayNewColGroup.InsertAt(1, pAyCol->GetAt(1)); delete pAyCol; mapFixedCol.RemoveKey(COLUMN_HQ_BASE_NUMBER); } } m_iCol->SetDispColGroup(strGroupName, &ayNewColGroup); // for (int i=0; i<ayNewColGroup.GetCount(); i++) // { // CStringArray* pTemp = ayNewColGroup.GetAt(i); // if (pTemp) // { // delete pTemp; // } // } ayNewColGroup.RemoveAll(); m_bCurChanged = FALSE; return TRUE; }