BOOL CTabPageProgram::OnInitDialog() { CDialog::OnInitDialog(); ADD_LOG(); m_lt_ShowProgram.SetExtendedStyle(LVS_EX_SUBITEMIMAGES | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES); m_lt_ShowProgram.ModifyStyle(0, LVS_REPORT, 0); m_lt_ShowProgram.InsertColumn(0, _T("自动恢复"), LVCFMT_CENTER, 100); m_lt_ShowProgram.InsertColumn(1, _T("编号"), LVCFMT_CENTER, 50); m_lt_ShowProgram.InsertColumn(2, _T("进程标识符"), LVCFMT_CENTER, 100); m_lt_ShowProgram.InsertColumn(3, _T("进程名称"), LVCFMT_CENTER, 80); m_lt_ShowProgram.InsertColumn(4, _T("数量"), LVCFMT_CENTER, 50); m_lt_ShowProgram.InsertColumn(5, _T("等待时间"), LVCFMT_CENTER, 100); m_lt_ShowProgram.InsertColumn(6, _T(" "), LVCFMT_CENTER, 40); m_lt_ShowProgram.InsertColumn(7, _T("事件名称"), LVCFMT_CENTER, 100); CHeaderCtrl* pHeaderCtrl = m_lt_ShowProgram.GetHeaderCtrl(); INT nCount = pHeaderCtrl->GetItemCount(); LPINT pOder = (LPINT)malloc(nCount*sizeof(int)); pHeaderCtrl->GetOrderArray(pOder, nCount); int nTemp = 0; nTemp = pOder[0], pOder[0] = pOder[nCount - 2], pOder[nCount - 2] = nTemp; pHeaderCtrl->SetOrderArray(nCount, pOder); free(pOder); UpdateList(); return TRUE; }
void CListCtrlEx::ReadState(LPCSTR pszName) { CHeaderCtrl* pHdr = GetHeaderCtrl (); int *piWidthes; Initialize (); LPBYTE pbW, pbI; UINT uSizeI, uSizeW; CString strIndexes = pszName, strWidthes = pszName; strIndexes += 'I'; strWidthes += 'W'; if (_App.GetProfileBinary (_T ("Settings\\View\\ListViews"), strIndexes, &pbI, &uSizeI) && _App.GetProfileBinary (_T ("Settings\\View\\ListViews"), strWidthes, &pbW, &uSizeW) && uSizeI == m_cTotalCols * sizeof (int) && uSizeW == m_cTotalCols * sizeof (int)) { CopyMemory (m_aIndex, pbI, m_cTotalCols * sizeof (int)); piWidthes = (int*) pbW; int i = m_cTotalCols - 1; for (i = m_cTotalCols - 1; i >= 0; i--) if (m_aIndex [i] == -1) DeleteColumn (i); int aOrder [LISTEX_MAXCOLUMNS]; int iCorr = 0; for (i = 0; i < m_cTotalCols; i++) { if (m_aIndex [i] != -1) aOrder [m_aIndex [i]] = i - iCorr; else iCorr ++; } pHdr->SetOrderArray (GetHeaderCtrl ()->GetItemCount (), (int*) aOrder); RebuildAIndex (); for (i = 0; i < m_cTotalCols; i++) { if (piWidthes [i] > 0) SetColumnWidth (aOrder [m_aIndex [i]], piWidthes [i]); } delete [] pbW; delete [] pbI; } }
/* * 交换列表框中的两列位置 */ void CYuanListShowImg::SwapColumns(int c1, int c2) { CHeaderCtrl *pmyHeaderCtrl = m_plcShow->GetHeaderCtrl(); int nCount = pmyHeaderCtrl->GetItemCount(); LPINT pnOrder = (LPINT) malloc(nCount*sizeof(int)); ASSERT(pnOrder != NULL); pmyHeaderCtrl->GetOrderArray(pnOrder, nCount); int nTemp; nTemp = pnOrder[c1]; pnOrder[c1] = pnOrder[c2]; pnOrder[c2] = nTemp; pmyHeaderCtrl->SetOrderArray(nCount, pnOrder); free(pnOrder); }