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

Posted

技术标签:

【中文标题】是否可以在没有 MFC 的情况下使用 CListCtrl【英文标题】:Is it possible to use CListCtrl without MFC 【发布时间】:2016-04-04 11:21:25 【问题描述】:

我想在我的 Win32 项目中使用 CListCtrl。我曾尝试将 MFC 添加到我的项目中,但失败了。我只需要 CListCtrl。我能以某种方式只添加没有整个 MFC 的 CListCtrl。

【问题讨论】:

它是 ListView 控件的包装器。你可以在没有 MFC 的情况下使用它。在资源编辑器的对话框中添加一个,或调用 CreateWindow。 使用 ListView 我有问题如何插入多列。现在要向 ListView 添加一些内容,我使用 SendMessage(listBox, , ,); @NikolaGaić 你在我的回答中看到链接了吗?你有 ListView_InsertColumn,msdn.microsoft.com/en-us/library/windows/desktop/… 【参考方案1】:

CListCtrl 类只是标准 Win32 ListView control 的包装,您可以在没有 MFC 的情况下使用它。 MFC 源在此源路径中可用:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc

对于没有 MFC 的 ListView 编码,请参阅ListView documentation。

或者您可以考虑使用其他库,例如 WTL。

【讨论】:

Tnx,这是我需要的信息。我认为它们是不同的控件。【参考方案2】:

您需要使用适当的函数或方法来更改列表控件的行为,以便显示多个列。将CListCtrl::SetView 与LV_VIEW_DETAILS 一起使用。

您也可以使用具有相同值的LVM_SETVIEW 。

如果您使用 Visual Studio 的对话框编辑器(MFC 或 Win32),您只需更改 View 属性即可。

【讨论】:

以上是关于是否可以在没有 MFC 的情况下使用 CListCtrl的主要内容,如果未能解决你的问题,请参考以下文章

Visual C++/MFC:让日文字符在没有 UNICODE 的情况下工作

有没有办法在不使用(MFC)动态对象创建的情况下在 CSplitterWnd 中创建视图?

有没有办法在不使用 /UNICODE 编译的情况下使用 MFC 的 CEdit 函数“ShowBalloonTip”?

如果任何列中不需要图像/图标,MFC CListCtrl是否合适?

MFC执行线程问题

没有 CDC 的 MFC 字符串宽度