CGXGridParam::m_nDisplayExpression
WORD m_nDisplayExpression;
Remarks
Toggles the display of formula expressions in inactive cells:
- GX_EXPR_DISPLAYALWAYS will display formula expression in inactive cells;
- GX_EXPR_DISPLAYACTIVE will display formula expression only in the active current cell;
- GX_EXPR_DISPLAYNEVER will display no formula expressions at all.
When using the formula engine, the default is GX_EXPR_DISPLAYACTIVE. The edit control will display formulas in the cell.
Otherwise the default is GX_EXPR_DISPLAYNEVER .
When you change this setting you will notice a change of behavior in the CGXEditControl::SetValue method. With GX_EXPR_DISPLAYNEVER CGXEditControl::SetValue calls GetControlText to convert the style value into the display text for the cell. With GX_EXPR_DISPLAYACTIVE CGXEditControl::SetValue will not call GetControlText and directly call SetWindowText.
Example:
void CGXEditControl::SetValue(LPCTSTR pszRawValue)
{
// Convert the value to the text which should be
// displayed in the current cell and show this
// text.
if (m_hWnd == NULL)
return;
if (Grid()->GetParam()->m_nDisplayExpression & GX_EXPR_DISPLAYACTIVE)
{
if (pszRawValue)
SetWindowText(pszRawValue);
else
SetWindowText(Grid()->GetExpressionRowCol(m_nRow, m_nCol));
}
else
{
CString sText;
GetControlText(sText, m_nRow, m_nCol, pszRawValue, *m_pStyle);
SetWindowText(sText);
}
if (IsActive())
{
Grid()->DelayFloatCells(CGXRange(m_nRow, m_nCol));
Grid()->EvalFloatCells(CGXRange(m_nRow, m_nCol));
Grid()->EvalVisibleFloatMergeCells(CGXRange(m_nRow, m_nCol, Grid()->GetLastVisibleRow(), Grid()->GetLastVisibleCol()), TRUE);
}
}
Also, the behavior of the CGXStatic::Draw method changes. With GX_EXPR_DISPLAYNEVER or GX_EXPR_DISPLAYINACTIVE CGXStatic::Draw calls GetControlText to convert the style value into the display text for the cell. With GX_EXPR_DISPLAYALWAYS CGXStatic::Draw will only call GetExpressionRowCol and not GetControlText any more.
See Also
CGXStatic CGXEditControl CGXGridCore::GetExpressionRowCol CGXControl::GetControlText CGXControl::SetValue