我有一个CDialog类,里面有两个ClistCtrl类。 我想找出目前选择哪个listCtrl。 比如listCtrl A和B.即使我在A和B之间移动,假设我先去A并选择一行。然后即使我去B并在那里选择一个项目,A中的项目仍然被选中,因为我不知道我已经进入了其他列表。
任何建议,我怎么能找到这个。
答案 0 :(得分:1)
如果您理解正确,则需要知道列表框中的哪一个具有焦点。你可以通过调用GetFocus()
来做到这一点,它会返回一个指向聚焦控件的指针。
您可能遇到的问题是,当您的对话框不是活动窗口,然后焦点将在其他地方。在这种情况下,您应该跟踪WM_SETFOCUS
和WM_KILLFOCUS
消息,并记录最后激活哪些列表框。在MFC中,可以使用回调CWnd::OnSetFocus
和CWnd::OnKillFocus
来实现这一目标。
答案 1 :(得分:1)
我找到了一种方法。我可以在两个列表上注册NM_Click通知 当选择列表A时,我将列表B的curSel设置为-1,反之亦然。