2008-10-31 116 views

回答

2

这是可行的,但它确实需要一点点鼠标点击和焦点事件。

简而言之,您可以捕获鼠标左键按下消息并将其转换为单元格命中细节(即行和列索引)。

通过这些单元格详细信息,您无法确定列表视图单元格的大小和位置以及它包含的文本值。

现在,通过使用上一步中的大小和位置详细信息,直接在该单元格上创建一个CEdit控件,并为其指定单元格的文本值。

最后一步是处理CEdit的焦点和键盘输入事件,以便CEdit的文本细节可以放回到列表视图单元格中。

它确实需要大量的编码,但如果做得好,它可以很好地作为网格控制的替代方案。

2

请勿尝试使用CListCtrl。

使用MFC Grid Control。我们将它部署在成功的现成应用程序中。它为所有单元格提供就地编辑,复选框,旋转等,以及列和行标题,自动大小,自动扩展,颜色,拖放。

+3

更好的使用http://www.codeproject.com/KB/list/CGridListCtrlEx.aspx在Vista/Win7上它并不丑陋 – Lothar 2012-01-19 21:32:59