Move given row up
BOOL MoveItemUp( int nRow )
true if nRow is valid otherwise false
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_OK(OnMoveUp) ON_GRID_SEL_CHANGE(IDC_GRID, OnSelChange); EVENTS_END ///---------------------------------------------- BOOL OnInitDialog() { ResizeDialog::OnInitDialog(0, "Grid Dialog"); //initialize grid control m_GridCtrl.Init(IDC_GRID, *this); m_GridCtrl.SetupRowsCols( 1, 0, 5, 1 ); vector<string> vsItems = {"A", "B", "C", "D"}; m_GridCtrl.SetTableValue(vsItems, true); m_GridCtrl.SetSelection(flexSelectionListBox); m_GridCtrl.SetAllowSelection(false); //move grid control to top left RECT rrList; rrList.top = rrList.left = GetControlGap(); m_GridCtrl.MoveWindow(rrList); GetItem(IDOK).Text = "Move Up"; 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 OnMoveUp() { int nRow = m_GridCtrl.GetSelectedRow(0); m_GridCtrl.MoveItemUp(nRow); return FALSE; } void OnSelChange(Control ctrl) { int nRow = m_GridCtrl.GetSelectedRow(0); GetItem(IDOK).Enable = nRow > m_GridCtrl.GetRowOffset(); } private: GridControl m_GridCtrl; }; bool OpenGridDLG() { GridCtrlDLG myDlg; myDlg.DoModal( GetWindow() ); return true; }
GridControl.h