| Using the MS-Flexgrid in Visual C++ |
Introduction
ImplementationStep 1First, include the msflexgrid control in the project. To do that :-
Step 2Then, set the properties as you want it to be. Right click on the grid and select the Properties option. Step 3Add a member variable for that grid. E.g. Step 4Its better to clear the flexgrid before you do any operations on it. To do that, use :- m_Grid.Clear(); Step 5To add records to the Grid, use something like this. CString strName,strRemarks; m_nCount = 0; // Clear and refresh the grid m_Grid.Clear(); m_Grid.Refresh(); // Get the value for strName from the database here // Get the strRemarks from the database here m_nCols = m_Grid.GetCols(); m_Grid.SetTextArray(0, "Name " ); // First Column m_Grid.SetTextArray(1, "Remarks " ); // Second Column m_nCount++; // Fill First Column m_Grid.SetTextArray( m_nCols * m_nCount + 0,strName ); // Fill Second Column m_Grid.SetTextArray( m_nCols * m_nCount + 1, strRemarks ); // Redraw the grid m_Grid.SetRedraw(TRUE); m_Grid.Refresh(); Step 6
void YourDialog::OnDblClickGrid() { // Get the current row and column int nRow = m_Grid.GetRow(); int nCol = m_Grid.GetCol(); CString strName,strRemarks; // Get data from the First Column strName = m_Grid.GetTextMatrix(nRow,nCol+0); // Get data from the Second Column strRemarks = m_Grid.GetTextMatrix(nRow,nCol+1); } Step 7To move to the previous record, do this :- void YourDialog::OnBtnPrevious() { m_Grid.SetRedraw(FALSE); // Get the current selection int NextRow = m_Grid.GetRowSel(); // If the position is at the last record, return if(NextRow <= 1) { return; } else { long BackColor[2],FontColor[2]; int Column; // The BackColor and the FontColor variables // are manipulated because we want a // selected effect to be given to the previous // record. Here, we are merely changing // the color of the selected // row to give it that effect. BackColor[0] = 0x00FFFFFF; BackColor[1] = 0x00FFFFB0; FontColor[0] = 0x00400000; FontColor[1] = 0x000000FF; for(Column = 1; Column < m_Grid.GetCols(); Column++) { m_Grid.SetCol(Column); m_Grid.SetCellBackColor(BackColor[0]); m_Grid.SetCellForeColor(FontColor[0]); } m_Grid.SetRow(--NextRow); for(Column = 1; Column < m_Grid.GetCols(); Column++) { m_Grid.SetCol(Column); m_Grid.SetCellBackColor(BackColor[1]); m_Grid.SetCellForeColor(FontColor[1]); } m_Grid.Refresh(); m_Grid.SetRedraw(TRUE); } } Step 8To got to the Next record, do the reverse of the code above. Instead of Warning
|
| flexgrid |