Я хотел бы установить значение выделенных ячеек в объекте wxGrid (ниже: PuzzleGrid), но мой код не работает. Любая идея, почему это неправильно? Благодарю!
void wxkitFrame::OnDrawStarButtonClick(wxCommandEvent& event)
{
wxArrayInt wxCols, wxRows;
wxCols=PuzzleGrid->GetSelectedCols();
wxRows=PuzzleGrid->GetSelectedRows();
wxString star="*";
for (int i=0; i<wxRows.GetCount(); i++)
{
int rownum=wxRows[i];
for (int j=0; j<wxCols.GetCount(); j++)
{
int colnum=wxCols[j];
PuzzleGrid->SetCellValue(rownum,colnum,star);
}
}
}
Просто угадайте здесь, поскольку вы не потрудились самостоятельно отлаживать код, но я думаю, что ваши переменные wxCols
и wxRows
(это плохие имена BTW, не используйте префикс wx
если вы хотите, чтобы ваши идентификаторы не конфликтуют с wxWidgets) пустые, потому что GetSelected{Cols,Rows}()
ничего не возвращает, если вы не изменили режим выделения явно с помощью SetSelectionMode(wxGridSelectRowsOrColumns)
: по умолчанию режим выбора - это wxGridSelectCells
означающий, что вы должны перебирать отдельные ячейки, а не столбцы/строк.