vc6.0 为何CTreeCtrl.GetSelectedItem() 取得的是选中之前的item - VC/MFC当前位置:& &&&vc6.0 为何CTreeCtrl.GetSelectedItem() 取得的是选vc6.0 为何CTreeCtrl.GetSelectedItem() 取得的是选中之前的item&&网友分享于:&&浏览:233次vc6.0 为什么CTreeCtrl.GetSelectedItem() 取得的是选中之前的item[code=C/C++]
// & TreeCtrl的单击响应函数
void & CCapture2Dlg::OnClickTreeStudents(NMHDR* & pNMHDR, & LRESULT* & pResult) &
// & TODO: & Add & your & control & notification & handler & code & here
HTREEITEM & hItem & = & m_pStudentTree-& GetSelectedItem();
if(hItem & != & m_hRoot) & {
& CString & csId;
& csId.Format( &%s &, & m_pStudentTree-& GetItemText(hItem));
& MessageBox(csId);
*pResult & = & 0;
为什么我用GetSelectedItem()方法取得的是单击之前选中的函数呢?
例如:有两个节点,文本分别为 & a & 和 & b,其中a处于选中状态,我点击b后弹出的是a的内容,是焦点离开的item的内容而不是当前焦点item的内容 ------解决方案--------------------大致上是这样的:C/C++ code
GetCursorPos(&pt);
m_tree.ScreenToClient(&pt);
HTREEITEM hItem = tree.HitTest(pt);
if(NULL != hItem)
------解决方案--------------------LS 的正解& 也贴个自己的C/C++ code
GetCursorPos(&pt);
m_TreeCtrl.ScreenToClient(&pt);
hItem = m_TreeCtrl.HitTest(pt,&hFlag);
if ((hItem!=NULL)&&(TVHT_ONITEM&hFlag))
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有python(8)
openstack(7)
在Nova的源码中,基本上所有的类都继承NovaObject,这些类可以直接以a[key]=value的方式给对象增加新的属性并且通过a[key]的方式获取对象属性,这是因为在NovaObject中实现了两个方法__getitem__和__setitem__。
下面是NovaObject的部分源码:
class NovaObject(object):
def __getitem__(self, name):
&&&For backwards-compatibility with dict-based objects.
NOTE(danms): May be removed in the future.
return getattr(self, name)
def __setitem__(self, name, value):
&&&For backwards-compatibility with dict-based objects.
NOTE(danms): May be removed in the future.
setattr(self, name, value)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:76075次
积分:2474
积分:2474
排名:第12357名
原创:178篇
转载:21篇
(1)(7)(1)(1)(1)(9)(1)(1)(18)(5)(54)(48)(48)(4)