CListCtrl - 如何找到它被选中

时间:2010-12-03 10:29:25

标签: visual-c++ mfc clistctrl

我有一个CDialog类,里面有两个ClistCtrl类。 我想找出目前选择哪个listCtrl。 比如listCtrl A和B.即使我在A和B之间移动,假设我先去A并选择一行。然后即使我去B并在那里选择一个项目,A中的项目仍然被选中,因为我不知道我已经进入了其他列表。

任何建议,我怎么能找到这个。

2 个答案:

答案 0 :(得分:1)

如果您理解正确,则需要知道列表框中的哪一个具有焦点。你可以通过调用GetFocus()来做到这一点,它会返回一个指向聚焦控件的指针。

您可能遇到的问题是,当您的对话框不是活动窗口,然后焦点将在其他地方。在这种情况下,您应该跟踪WM_SETFOCUSWM_KILLFOCUS消息,并记录最后激活哪些列表框。在MFC中,可以使用回调CWnd::OnSetFocusCWnd::OnKillFocus来实现这一目标。

答案 1 :(得分:1)

我找到了一种方法。我可以在两个列表上注册NM_Click通知 当选择列表A时,我将列表B的curSel设置为-1,反之亦然。