<< Return to Main Index

< Return to Class Index

CGXGridParam::SetSpecialMode

void SetSpecialMode(WORD wFlags);    

wFlags

GX_MODELBOX_MS specifies the usage as multiple selection list box.

Remarks

Enables the specified special mode. Call this method for using the grid as single or multiple selection list box.

In single selection list box mode, setting the current cell always results in selecting the associated row.

In multiple selection list box mode, setting the current cell always results in selecting the associated row. If the user presses CTRL, he can select several rows. By pressing SHIFT, he can extend the last selection.

Note: You should also call SetHideCurrentCell(GX_HIDE_ALWAYS) to disable inverting the current cell. Also EnableSelection(GX_SELFULL) should be set or  if you don't want column headers to be selectable call EnableSelection(GX_SELFULL&~GX_SELCOLS).

The following example shows you how to enable listbox-mode:

 //////////////////////////////////////////////////////////////////
 void CMyGridView::OnInitialUpdate( )
 {
    CGXRecordView::OnInitialUpdate( );

    // Initialize default style
    StandardStyle( )
       .SetControl(GX_IDS_CTRL_STATIC);

    SetReadOnly(TRUE);

    // Initialization for listbox-mode

    HideCols(0, 0);

    CGXProperties* pProp = GetParam( )->GetProperties( );
    pProp->SetDisplayHorzLines(FALSE);
    pProp->SetDisplayVertLines(FALSE);

    GetParam( )->SetActivateCellFlags(FALSE);
    GetParam( )->EnableMoveCols(FALSE);
    GetParam( )->EnableSelection(GX_SELFULL);
    GetParam( )->SetSpecialMode(GX_MODELBOX_SS);
    GetParam( )->SetHideCurrentCell(GX_HIDE_ALLWAYS);

    // select first row
    SetCurrentCell(1,0);
    SelectRange(CGXRange( ).SetTable( ), FALSE);
    SelectRange(CGXRange( ).SetRows(1), TRUE);
 }

See Also

CGXGridParam::IsSpecialMode CGXGridParam::SetHideCurrentCell CGXGridParam::EnableSelection

CGXGridParam

Class Overview | Class Members