我正在进行复杂的网格布局,而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);
...
}
没有成功:单元格文本总是显示在一行上,这正是我不想要的。
如何在多行上获取单元格文本?
答案 0 :(得分:0)
我告诉我如何解决我的问题,希望它对某人有用。
要设置多行单元格,应使用成员函数 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);
}
答案 1 :(得分:0)
在OnSetup()
方法内:
SetTH_NumberRows(2); // Set 2 rows
JoinCells(1,-2, 1,-1); // Join row -1 and -2 in column 1
QuickSetCellTypeEx(1, -2, UGCT_NORMALMULTILINE); // Column 1, row -2 is a multiline
CString title = _T("New\r\nline");
QuickSetText(1, -2, title); SetColWidth(1, 200); // Set text in the preferred cell