본문으로 바로가기

MSFlexgrid in VC++

category 개발언어/c++ 2016. 11. 18. 04:48

MFC MSFlexGrid 사용법 메소

m_Grid.Clear();//Claer
 

항목체우기 예제

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();
 

항목의 글 가져오기

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);    
}
 

색상 변경

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);
    }
}