mfc c ++通过控制获取控件属性

时间:2015-03-06 21:45:31

标签: c++ mfc clistctrl class-constants

这似乎我向那些已经知道的人提出了一个愚蠢的问题。 您是否注意到将这些设置值常量找到您刚刚开始学习的某些MFC控件的属性是多么困难。如果我可以去一些知识或因为信息太大而无法放入书本,然后是一个网站,您可以深入了解您想要的控件和方法或属性,那不是很好吗查找可以接受的设置常数......

例如,我正在CListCtrl上使用CDialog(如果需要,甚至可以CDialogEx),我想设置Verticle&此控件的水平线(或网格线)。你会想我会找到一个例子。到目前为止我还没有。另一个是CListCtrl列格式。我发现LVCFMT_LEFT,但我正在寻找类似" LVCFMT_CENTER"那不是。所以我只是梳理互联网,看看我是否可以从CListCtrl的其他问题的某些人的问题中瞥见我的回答。

如果有人可以指导我完成我的任务,我将不胜感激。

Maddog

1 个答案:

答案 0 :(得分:0)

你看到https://msdn.microsoft.com/en-us/library/hfshke78.aspx了吗?

要显示网格线,您需要设置扩展样式LVS_EX_GRIDLINES。您通过拨打SetExtendedStyle来执行此操作。

auto exstyles = m_myListCtrl.GetExtendedStyle();
exstyles |= LVS_EX_HEADERDRAGDROP;
m_myListCtrl.SetExtendedStyle(exstyles);

对于LVCFMT_CENTER,它确实有效,但不在第一列。请参阅MSDN中的评论:

  

如果将列添加到索引为0的列表视图控件(最左边的列)   列),它始终是LVCFMT_LEFT。在第0列上设置其他标志   不会覆盖该对齐方式。因此,如果你继续插入   索引为0的列,所有列中的文本都是左对齐的。如果你   希望第一列是右对齐或居中,你可以做一个   虚拟列,然后插入一个或多个索引为1或更高的列   并指定所需的对齐方式。最后删除假人   列。