当tree被点击的时候,会发出多个消息。我响应 TVN_SELCHANGED 可以知道那个条目被点击,但是当两次的点击都是同一个条目时,第二次的点击没有收到消息。如果响应 NM_CLICK 得不到当前点击的条目,得到的是前一次点击的条目。不知道如何处理为好?
解决方案 »
- strSQL.Format()这个函数是什么意思,怎么用?
- 急请教!能否把状态栏像工具栏一样放到窗口的顶部????
- 菜鸟问题:关于如何得到被选中的radio按钮!
- 请问模板类的声明和实现是不是必须都放在头文件中,那我如果想做成静态库岂不是不行?
- 请教几个英文词语
- 请问如何将整个窗口的底色改变
- 请教高手:如何将编译IDL文件产生的COM对象类(不含IDispatch)加入由MFC产生的项目的ClassWizzard中?多谢
- 视频捕获和处理的程序在新usb摄像头上工作不正常
- 应用程序居中显示问题
- 有人用过process monitor啊? 遇到个问题,求解一下
- vc中用LineTo画线移动窗口后线条消失,怎样让它不消失啊
- 100分求助 读取与保存文档功能
GetSelectedItem
以下是我一个项目中的部分代码,你可以参考下。
void Dlg1::OnDblclkTree3(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CMainFrame* p= (CMainFrame*)AfxGetApp()->m_pMainWnd;m_hTreeItem=m_tree.GetSelectedItem();
CString S1=m_tree.GetItemText(m_hTreeItem);
m_tree.GetParentItem(m_hTreeItem);if (S1=="新建工程")
{
::PostMessage(p->m_hWnd,0x503,0L,0L);
}
if (S1=="打开工程")
{
::PostMessage(p->m_hWnd,0x504,0L,0L);
}
if (S1=="保存工程")
{
::PostMessage(p->m_hWnd,0x505,0L,0L);
}if (m_tree.GetItemText(m_tree.GetParentItem(m_hTreeItem))=="IRI数据")
{
if (S1=="上行行车道")
{
if (p->iri_1==1)
{
data_select=1;
road_select=1;
::PostMessage(p->Splitter3.GetPane(0,0)->m_hWnd,0x411,0L,0L);
}
if (p->iri_1==0)
{
::PostMessage(p->m_hWnd,0x601,0L,0L);
}
}
if (S1=="上行超车道")
{
if (p->iri_2==1)
{
data_select=1;
road_select=2;
::PostMessage(p->Splitter3.GetPane(0,0)->m_hWnd,0x412,0L,0L);
}
if (p->iri_2==0)
{
::PostMessage(p->m_hWnd,0x602,0L,0L);
}
}
}
}
void CClassView::OnLClickTree(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
pNMTreeView->itemNew//这个就是新选中的节点
}