我把这个问题简化一下说吧:一个CTreeCtrl框框里面有2个item,一个叫做
aaa,一个叫做bbb,现在aaa选中,我用鼠标点bbb,在点中bbb的时候弹出一个
YESNO的messageBox,如果选择yes,那么bbb处于选中状态,如果选择no,那么
原来的aaa还处于选中状态。
问题是:如果我在OnSelectedChanged或者OnSelectedChanging里面弹出
MessageBox,那么无论我怎么写,在OnSelectedChanged(或者OnSelectedChanging)
结束后,都会自动的把bbb选中。怎么办呀?
求求各位帮帮我,送多少分都可以,十万分感谢!!
aaa,一个叫做bbb,现在aaa选中,我用鼠标点bbb,在点中bbb的时候弹出一个
YESNO的messageBox,如果选择yes,那么bbb处于选中状态,如果选择no,那么
原来的aaa还处于选中状态。
问题是:如果我在OnSelectedChanged或者OnSelectedChanging里面弹出
MessageBox,那么无论我怎么写,在OnSelectedChanged(或者OnSelectedChanging)
结束后,都会自动的把bbb选中。怎么办呀?
求求各位帮帮我,送多少分都可以,十万分感谢!!
解决方案 »
- 图像处理 求教各位大虾
- 文件后缀大全
- 对话框和控件之间的消息如何控制
- 好奇:Visual Assist X的Navigate backward和Navigate forward是怎么实现的呢?
- 怎样在拖动滚动条后刷新窗口?
- 如何最小化或者隐藏一个 system modal dialog
- 如何用VC开发用于 Microsoft Office 2000 的 COM 加载项?
- 请问,vf中如何删除已经有了的字段,(用程序)~~~~~~~~~~~~~~~~~
- 300分求源码:自动绑定到数据库的控件。
- 线程如何挂起和唤醒?
- 请问象网吧管理系统如何控制客户端的使用?怎么才能避免用户的恶意破坏?
- 我该如何编译这样的项目
要先调用CTreeCtrl::OnLButtonDown(nFlags, point);
在后面加!
{
NM_TREEVIEW* pnmtv = (NM_TREEVIEW*)pNMHDR;
if(m_tree.GetItemText(pnmtv->itemNew.hItem) == "bbb")
{
if(MessageBox("确定选择bbb?", "测试", MB_YESNO|MB_ICONQUESTION) == IDNO)
{
*pResult = 1;
return;
}
} *pResult = 0;
}
void CCTreeControlDemoDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if (MessageBox("If use current node as focus node?",NULL,MB_YESNO) == IDYES)
{
m_treeTest.SetItemState(pNMTreeView->itemNew.hItem ,TVIS_SELECTED,TVIS_SELECTED);
}
else
{
m_treeTest.SetItemState(pNMTreeView->itemOld.hItem ,TVIS_SELECTED,TVIS_SELECTED);
m_treeTest.SetItemState(pNMTreeView->itemNew.hItem ,0,TVIS_SELECTED);
}
*pResult = 0;
}