标签: clistctrl

使用CListCtrl,如何选择整行的颜色?

我目前有NM_CUSTOMDRAW消息调用一个函数来为报表模式中的listctrl的行着色.我可以检测何时选择了一行并自己着色,但是这个方法不会被选中的单元格调用,因此我无法为该单元格着色.所以我的问题是1)有没有办法让Windows为每个单元调用我的自定义绘制方法,无论它是否被选中?2)如果不是最简单的方法是选择跨越整行.谢谢,CP

mfc clistctrl

2
推荐指数
1
解决办法
2980
查看次数

如何在CListCtrl中捕获滚动事件?

我将CListCtrl子类化为我自己的类,并在几个对话框和视图中使用它.我想要做的是在垂直滚动ClistCtrl时执行一些代码.我需要它在CListCtrl子类本身.

我可以使用demoncodemonkey提供的方法检测与滚动条交互时触发的滚动:

messagemap:

BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
    ON_WM_VSCROLL()
END_MESSAGE_MAP()
Run Code Online (Sandbox Code Playgroud)

方法声明:

class CMyListCtrl : public CListCtrl
{
    //...
protected:
    afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
    DECLARE_MESSAGE_MAP()
};
Run Code Online (Sandbox Code Playgroud)

方法实现:

void CMyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    //do some stuff here
    CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}
Run Code Online (Sandbox Code Playgroud)

但:

  • 鼠标滚轮不会触发OnVScroll.

  • 当点击底部部分可见的CListCtrl项目(它向上滚动以使项目完全可见)时,自动滚动也不会触发OnVScroll.例如:

部分可见的项目http://i37.tinypic.com/2guxtfn.png

单击项目9会导致ClistCtrl滚动一点,以便项目完全可见.

c++ mfc scroll clistctrl

1
推荐指数
1
解决办法
9861
查看次数

CListCtrl 中的垂直滚动条

我在图标视图中使用 CListCtrl,但它水平滚动:

1 3 5 7 -->
2 4 6 8 -->
Run Code Online (Sandbox Code Playgroud)

我宁愿它水平滚动:

1 2
3 4
5 6
| |
V V
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

c++ mfc scroll clistctrl

1
推荐指数
1
解决办法
6449
查看次数

在 MFC CListCtrl 中获取项目文本的索引

我有一个带有文本的 CString,它也是我的 CListCtrl 的一个项目文本。例如:

CString m_SearchThisItemText = _T("Banana");

在我的 CListCtrl 中

m_List.SetItemText (1, 1, _T ("Banana"));
Run Code Online (Sandbox Code Playgroud)

现在我想知道文本在哪个索引上。

CListCtrl::FindItem 不起作用。它只搜索项目的名称,而不是文本。

我也试过这个

for (Index= 0; dlg.GetSearchContentText () == m_List.GetItemText (Index, Spalte); Index++)// HIER IST NOCH EIN FEHLER.
{
    if (dlg.GetSearchContentText () == m_List.GetItemText(Index, Spalte))
    {
        m_List.SetItemState (Zeile, LVIS_SELECTED, LVIS_SELECTED); 
        m_List.SetFocus();
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。它停在索引 0

任何人都可以帮助我,如何找出文本所在的项目。

我希望你明白我的问题。

c++ mfc clistctrl

1
推荐指数
1
解决办法
8550
查看次数

CListCtrl中.双击时总是接收NM_CLICK + NM_DBLCLK

当我用鼠标双击时,我总是得到两条消息NM_CLICK然后NM_DBLCLK.为什么?

你知道我怎么能区分两者?

c++ mfc double-click clistctrl visual-studio-2015

1
推荐指数
1
解决办法
1520
查看次数

标签 统计

clistctrl ×5

mfc ×5

c++ ×4

scroll ×2

double-click ×1

visual-studio-2015 ×1