2.2.6.17.1 GridControl::AddCol
Description
Add columns
Syntax
void AddCol( int iCol = 1 )
Parameters
- iCol
- [input] the number of columns
Return
Examples
The examples in this section will use an existing grid dialog resource DLL that gets installed with Origin C's Developer Kit. The DLL can be found in this zip file, under \Dialog Builder\GridDLG sub-folder.
#include <..\Originlab\DialogEx.h>
#include "GridDLGRes.h"// resource DLL header
class GridCtrlDLG : public ResizeDialog
{
public:
GridCtrlDLG() : ResizeDialog(IDD_GRID_DLG, "GridDLG")
{
}
int DoModal(HWND hParent = NULL)
{
InitMsgMap();
int nRet = ResizeDialog::DoModal(hParent);
return nRet;
}
protected:
///----------------- Message Map ----------------
EVENTS_BEGIN
ON_INIT(OnInitDialog)
ON_SIZE(OnDlgResize)
ON_GETMINMAXINFO(OnMinMaxInfo)
ON_CONTEXTMENU(OnShowMenu)
EVENTS_END
///----------------------------------------------
BOOL OnInitDialog()
{
ResizeDialog::OnInitDialog(0, "Grid Dialog");
//initialize grid control
m_GridCtrl.Init(IDC_GRID, *this);
m_GridCtrl.SetupRowsCols( 1,1, 5, 2 );
vector<string> vsItems = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
m_GridCtrl.CheckExpandRows( vsItems.GetSize()- 1 );
m_GridCtrl.SetCells(vsItems, 0);
m_GridCtrl.SetCells(vsItems, 1);
//move grid control to top left
RECT rrList;
rrList.top = rrList.left = GetControlGap();
m_GridCtrl.MoveWindow(rrList);
SetInitReady();
return TRUE;
}
BOOL OnDlgResize(int nType, int cx, int cy)
{
if(!IsInitReady())
return TRUE;
uint nButtonIDs[] = {IDOK, 0};
ArrangeMainItemAndControls(nButtonIDs, IDC_GRID, NULL, false);
return TRUE;
}
BOOL OnShowMenu(UINT nResIDCtrl, int nx, int ny)
{
if(IDC_GRID == nResIDCtrl)
{
int nRow, nCol;
m_GridCtrl.GetMouseCell(nRow, nCol);
UINT nFlags = m_GridCtrl.IsInGrid(nRow, nCol) && (nCol-m_GridCtrl.GetColOffset()>=0) && m_GridCtrl.HasRows();
Menu menuRows;
menuRows.Add("Add Col", 1, MF_STRING);
menuRows.Add("Insert Col", 2, nFlags ? MF_ENABLED : MF_DISABLED | MF_GRAYED);
menuRows.Add("Delete Col", 3, nFlags ? MF_ENABLED : MF_DISABLED | MF_GRAYED);
menuRows.Add("RePos Col", 4, nFlags ? MF_ENABLED : MF_DISABLED | MF_GRAYED);
int nCmd = 0;
menuRows.TrackPopupMenu(0, nx, ny, GetSafeHwnd(), &nCmd);
switch(nCmd)
{
case 1:
int dVal = InputBox(0, "Please determine how many columns to add");
if(dVal>0)
m_GridCtrl.AddCol(dVal);
break;
case 2:
m_GridCtrl.InsertCol(nCol);
break;
case 3:
m_GridCtrl.DeleteCol(nCol);
break;
case 4:
int nPos = InputBox(0, "Please determine the target columns to relocate it");
if(nPos>0)
m_GridCtrl.SetColPosition(nCol,nPos+m_GridCtrl.GetColOffset());
break;
}
}
return TRUE;
}
private:
GridControl m_GridCtrl;
};
bool OpenGridDLG()
{
GridCtrlDLG myDlg;
myDlg.DoModal( GetWindow() );
return true;
}
Remark
See Also
- GridControl::DeleteCol
- GridControl::InsertCol
- GridControl::SetColPosition
Header to Included
GridControl.h
|