У wxGrid стоит EnableDragColSize();
Как можно отследить, что пользователь изменил положение колонок в wxGrid'е? Никак не могу найти нужное событие Event.
Event на Drag&Drop Column для wxGrid Topic is solved
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
EVT_GRID_COL_SIZE(func) The user resized a column by dragging it. Processes a wxEVT_GRID_COL_SIZE.
EVT_GRID_ROW_SIZE(func) The user resized a row by dragging it. Processes a wxEVT_GRID_ROW_SIZE.
EVT_GRID_CMD_COL_SIZE(id, func) The user resized a column by dragging it; variant taking a window identifier. Processes a wxEVT_GRID_COL_SIZE.
EVT_GRID_CMD_ROW_SIZE(id, func) The user resized a row by dragging it; variant taking a window identifier. Processes a wxEVT_GRID_ROW_SIZE.
EVT_GRID_ROW_SIZE(func) The user resized a row by dragging it. Processes a wxEVT_GRID_ROW_SIZE.
EVT_GRID_CMD_COL_SIZE(id, func) The user resized a column by dragging it; variant taking a window identifier. Processes a wxEVT_GRID_COL_SIZE.
EVT_GRID_CMD_ROW_SIZE(id, func) The user resized a row by dragging it; variant taking a window identifier. Processes a wxEVT_GRID_ROW_SIZE.
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Я пробовал - не помогло
Функция вызывается только в том случае если изменяешь ширину колонки а если ее перетаскиваешь, то ничего не происходит. Или я ее неправильно готовлю?
И потом как узнать каким номером была колонка до перетаскивания и каким стала после, если там только event.GetRowOrCol()?
Code: Select all
Connect(ID_GRID1, wxEVT_GRID_COL_SIZE, (wxObjectEventFunction)&ViewArendators::OnGridColMove);
...
void ViewArendators::OnGridColMove(wxGridSizeEvent& event)
И потом как узнать каким номером была колонка до перетаскивания и каким стала после, если там только event.GetRowOrCol()?
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Ну дык более понятно надо вопрос ставить
В письме ясно написано
Короче, для этого есть аналоги:
EVT_GRID_COL_MOVE(func) и все остальные по аналогии, только они берут параметр wxGridEvent, из него можно получить номер колонки, которую перетащил (т.е. номер, который она имела до перетаскивания ), как получить новый номер, сразу не скажу, наверное стоит попробовать по координатам мыши - GetPosition().
В письме ясно написано
т.е. речь вроде идет о сайзинге, для перетаскивания есть EnableDragColMove().borr_1 wrote: У wxGrid стоит EnableDragColSize();
Короче, для этого есть аналоги:
EVT_GRID_COL_MOVE(func) и все остальные по аналогии, только они берут параметр wxGridEvent, из него можно получить номер колонки, которую перетащил (т.е. номер, который она имела до перетаскивания ), как получить новый номер, сразу не скажу, наверное стоит попробовать по координатам мыши - GetPosition().
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Да, да конечно ColMove - это я описался. Попробовал, wxEVT_GRID_COL_MOVE действительно отлавливает событие перемещения колонки.
+ такая особенность как колонку не таскай у нее будет тот же номер (ColID) что у нее был при создании т.е. будит колонка стоять последней, но если она при создании была первой слева номер у нее будет 0 (GetCol возвращает), хоть стреляйся, хотя с другой стороны удобно.
Видимо надо перебирать все колонки и делать GetColPos
+ такая особенность как колонку не таскай у нее будет тот же номер (ColID) что у нее был при создании т.е. будит колонка стоять последней, но если она при создании была первой слева номер у нее будет 0 (GetCol возвращает), хоть стреляйся, хотя с другой стороны удобно.
Видимо надо перебирать все колонки и делать GetColPos
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
С кем не бываетborr_1 wrote:Да, да конечно ColMove - это я опИсался.
BTW, как я понимаю, в принципе, проблема решена. Тогды неплохо бы закрыть тему, приняв мой ответ. И, между прочим, есть еще несколько твоих тем, вроде отвеченных, но не закрытых. Правила форума следует блюсти
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Так навеяло...
Модератора может обидеть каждый, но не всяк успеет извиниться
Я там еще ошибся ты мне тут помог я не туда галочку поставил (accepted answer) а убрать не могу
http://forums.wxwidgets.org/viewtopic.php?t=20662
и тут
http://forums.wxwidgets.org/viewtopic.php?t=20694
Модератора может обидеть каждый, но не всяк успеет извиниться
Я там еще ошибся ты мне тут помог я не туда галочку поставил (accepted answer) а убрать не могу
http://forums.wxwidgets.org/viewtopic.php?t=20662
и тут
http://forums.wxwidgets.org/viewtopic.php?t=20694