mfc Clistview 用代码设置report风格
时间: 2023-12-17 12:05:47 浏览: 51
可以通过以下代码设置CLISTVIEW控件的report风格:
```cpp
// 设置风格
DWORD dwStyle = m_listCtrl.GetExtendedStyle();
dwStyle |= LVS_REPORT;
m_listCtrl.SetExtendedStyle(dwStyle);
```
在这个示例代码中,首先获取CLISTVIEW控件的当前风格,然后按位或上LVS_REPORT标志,最后调用SetExtendedStyle函数设置新的风格。LVS_REPORT标志表示report风格,也可以使用其他风格标志,如LVS_SMALLICON、LVS_LIST等。
设置report风格后,还需要设置列信息,包括列标题和宽度等信息。下面是一个示例代码,设置了两个列,一个宽度为100像素,一个宽度为50像素:
```cpp
// 设置列信息
m_listCtrl.InsertColumn(0, _T("Name"), LVCFMT_LEFT, 100);
m_listCtrl.InsertColumn(1, _T("Age"), LVCFMT_LEFT, 50);
```
在调用InsertColumn函数时,第一个参数是列的序号,第二个参数是列的标题,第三个参数是对齐方式,第四个参数是列的宽度。如果需要更详细的格式设置,可以使用CListCtrl的其他函数,如SetColumnWidth、SetColumnOrderArray等。
相关问题
mfc Clistview 用代码设置好看的report风格
以下是在 MFC 中使用代码设置 CListView 控件为 Report 风格并美化的示例:
首先,创建一个 CListView 控件并设置为 Report 风格:
```
m_listCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, CRect(0,0,0,0), this, 1);
```
然后,设置 CListView 控件的风格和样式:
```
m_listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_listCtrl.SetTextColor(RGB(0, 0, 255));
m_listCtrl.SetTextBkColor(RGB(255, 255, 255));
m_listCtrl.SetBkColor(RGB(240, 240, 240));
```
其中,`LVS_EX_FULLROWSELECT` 表示选中整行,`LVS_EX_GRIDLINES` 表示显示网格线。`SetTextColor`、`SetTextBkColor` 和 `SetBkColor` 分别表示设置文字颜色、文字背景色和控件背景色。
接下来,添加列表头:
```
m_listCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 100);
m_listCtrl.InsertColumn(1, _T("年龄"), LVCFMT_CENTER, 100);
m_listCtrl.InsertColumn(2, _T("性别"), LVCFMT_CENTER, 100);
```
这里添加了三列,分别为姓名、年龄和性别,每列宽度均为 100。
最后,添加数据:
```
m_listCtrl.InsertItem(0, _T("张三"));
m_listCtrl.SetItemText(0, 1, _T("20"));
m_listCtrl.SetItemText(0, 2, _T("男"));
m_listCtrl.InsertItem(1, _T("李四"));
m_listCtrl.SetItemText(1, 1, _T("25"));
m_listCtrl.SetItemText(1, 2, _T("女"));
m_listCtrl.InsertItem(2, _T("王五"));
m_listCtrl.SetItemText(2, 1, _T("30"));
m_listCtrl.SetItemText(2, 2, _T("男"));
```
这里添加了三行数据,分别为张三、李四和王五,每行数据包含姓名、年龄和性别三个字段。
完整示例代码如下:
```
BOOL CMyDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
m_listCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, CRect(0,0,0,0), this, 1);
m_listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_listCtrl.SetTextColor(RGB(0, 0, 255));
m_listCtrl.SetTextBkColor(RGB(255, 255, 255));
m_listCtrl.SetBkColor(RGB(240, 240, 240));
m_listCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 100);
m_listCtrl.InsertColumn(1, _T("年龄"), LVCFMT_CENTER, 100);
m_listCtrl.InsertColumn(2, _T("性别"), LVCFMT_CENTER, 100);
m_listCtrl.InsertItem(0, _T("张三"));
m_listCtrl.SetItemText(0, 1, _T("20"));
m_listCtrl.SetItemText(0, 2, _T("男"));
m_listCtrl.InsertItem(1, _T("李四"));
m_listCtrl.SetItemText(1, 1, _T("25"));
m_listCtrl.SetItemText(1, 2, _T("女"));
m_listCtrl.InsertItem(2, _T("王五"));
m_listCtrl.SetItemText(2, 1, _T("30"));
m_listCtrl.SetItemText(2, 2, _T("男"));
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
```
mfc Clistview 用代码设置格式
可以通过以下代码设置CLISTVIEW控件的显示格式:
```cpp
// 设置列信息
m_listCtrl.InsertColumn(0, _T("Name"), LVCFMT_LEFT, 100);
m_listCtrl.InsertColumn(1, _T("Age"), LVCFMT_LEFT, 50);
m_listCtrl.InsertColumn(2, _T("Gender"), LVCFMT_LEFT, 50);
// 设置行信息
m_listCtrl.InsertItem(0, _T("John"));
m_listCtrl.SetItemText(0, 1, _T("30"));
m_listCtrl.SetItemText(0, 2, _T("Male"));
m_listCtrl.InsertItem(1, _T("Lisa"));
m_listCtrl.SetItemText(1, 1, _T("25"));
m_listCtrl.SetItemText(1, 2, _T("Female"));
```
这个示例代码设置了三列信息,两行数据,第一列的宽度为100像素,后两列的宽度为50像素。调用InsertItem函数插入行,调用SetItemText函数设置每个单元格的文本内容。在调用这些函数前,需要先创建CLISTVIEW控件并将其关联到一个变量上,如:
```cpp
CListCtrl m_listCtrl;
```
如果需要更详细的格式设置,可以使用CListCtrl的相关函数,如SetExtendedStyle、SetColumnWidth、SetItemData等。具体使用方法可以参考MFC文档。