0

我正在研究复杂的网格布局,而 UltimateGrid 是我的选择。

我设置了一个多行标题,然后我在垂直标题中加入了一些单元格

现在,我正在寻找一种在我加入的标题单元格中设置多行文本的方法。

这是一个解释性屏幕截图。

解释性截图

我已经尝试过写:

void MyCug::OnSetup(){

int rows = 5;
int cols = 20;

// setup rows and columns
SetNumberRows(rows);
SetNumberCols(cols);

// create 3 row top heading
SetTH_NumberRows(2);

...

JoinCells (16, -2, 16, -1); // Here I joins - in heading - two cells : row 16, columns -2 and -1

...

// Then I retrieve merged cell
CUGCell m_cell;
GetCell(16, -2, &m_cell);

// I need to show multi-line content in heading cells: I tried to set multi-row property.
int result = m_cell.SetPropertyFlags(m_cell.GetPropertyFlags() | UGCELL_MULTIROWCELL);

if (result == UG_SUCCESS) {
    bool ok = true;     // all seems to be ok...
}

m_cell.SetText("string\r\nstring\r\nstring"); // Despite my attempt, this will be always show on a single line!
SetCell(16, -3, &m_cell);

...
}

没有成功:单元格文本总是显示在一行上,这正是我不想要的。

如何获取多行的单元格文本?

4

2 回答 2

1

我告诉我如何解决我的问题,希望它对某人有用。

要设置多行单元格,应使用成员函数CUGCell::SetCellTypeEx() 。此功能允许您为单个单元格设置扩展属性。

下面的示例完美运行:

void MyCug::OnSetup(){

int rows = 5;
int cols = 20;

// setup rows and columns
SetNumberRows(rows);
SetNumberCols(cols);

// create 3 row top heading
SetTH_NumberRows(2);

...

JoinCells (16, -2, 16, -1); // Here i joins - in heading - two cells : row 16, columns -2 and -1

...

// I retrieve merged cell
CUGCell m_cell;
GetCell(16, -2, &m_cell);

cell.SetCellTypeEx(UGCT_NORMALMULTILINE); // set multiline cell

m_cell.SetText("string\r\nstring\r\nstring");

SetCell(16, -3, &m_cell);

}
于 2013-02-18T10:56:13.993 回答
0

方法内部OnSetup()

  1. 设置顶部标题中的行数。
SetTH_NumberRows(2); // Set 2 rows
  1. 将单元格范围连接在一起
JoinCells(1,-2, 1,-1); // Join row -1 and -2 in column 1
  1. 向单元格添加多行特征
QuickSetCellTypeEx(1, -2, UGCT_NORMALMULTILINE); // Column 1, row -2 is a multiline
  1. 添加文字
CString title = _T("New\r\nline");
QuickSetText(1, -2, title); SetColWidth(1, 200); // Set text in the preferred cell
于 2020-08-26T12:48:32.783 回答