在 MFC 中更改 CListCtrl 的样式

Posted

技术标签:

【中文标题】在 MFC 中更改 CListCtrl 的样式【英文标题】:Changing style of CListCtrl in MFC 【发布时间】:2013-12-12 14:58:38 【问题描述】:

我在 mfc 应用程序的一个对话框中有一个 ListCtrl。我想更改列名样式和按钮样式,使其看起来更像 win7 主题。这是右边有 listCtrl 的旧对话框。

我想把表格的第一行和按钮改成这样,

这可以通过 m_ElementListCtrl.SetExtendedStyle(..) 更改任何样式来完成吗?或改变它的一些属性?

【问题讨论】:

【参考方案1】:

您好,如果您的应用是 Unicode(否则有 some problems),您需要使用通用控件 6。

在您的stdafx.h 文件中,您可能会看到这种代码,如果没有,只需将其添加到文件末尾,如果您将应用更改为 UNICODE,您将看到具有新样式的控件。

#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32'   name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32'name='Microsoft.Windows.Common-Controls' version='6.0.0.0'processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

同时检查项目属性->链接器->清单文件->生成清单应该设置在Yes (/MANIFEST)

【讨论】:

以上是关于在 MFC 中更改 CListCtrl 的样式的主要内容,如果未能解决你的问题,请参考以下文章

CListCtrl控件使用指南(大全)

MFC - 带有可选复选框的 CListCtrl 行

MFC:CListCtrl.EnableWindow(FALSE),但仍可滚动? [复制]

有没有办法覆盖当用户单击 CListCtrl 中的复选框时调用的处理程序? (MFC)

MFC CListCtrl 更新任何单元格的文本

是否可以在没有 MFC 的情况下使用 CListCtrl