如何用代码取消CTreeCtrl控件中Item的编辑状态? 刚解决了向你 的 树型控件发一个鼠标按下消息就可以//取消编辑状态m_trRoot.SendMessage(WM_LBUTTONDOWN,0,0);要去听课了,还没解决给我消息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 经测试云帆(xiang_yun)的办法可行,但我还想问的是:这条消息发送出去后,响应这条消息的处理函数执行在先还是SendMessage的下一条语句执行在先?如果是SendMessage的下一条语句在先,那有没有办法让刚才发送的消息的处理函数先执行? 可以先测试一下嘛,看一下效果,如有需要可以在发消息之后加Sleep(),再测试一下,再看效果是不是已经解决问题. 仔细想想,这个问题好像存在逻辑错误!下面让我来分析:让用户点击 Item 时,进入编辑状态;这时,只要用鼠标点任何一个地方,或者按TAB键,就会退出编辑状态。根本就不需要你来处理。你真正需要处理的是:退出编辑状态时,你是否要接受用户的输入。 刚刚开始搞MFC,现在维护一个项目.这个问题的提出是这样的:测试DEBUG版的时候发现如果树节点处于编辑状态时,从菜单选择"删除"时会发生断言失败,.NET C++给出的消是"f:\sp\vctools\vc7libs\ship\atlmfc\src\mfc\winctrl2.cpp 第733行".可实际上我的电脑就没有F盘.我试图跟踪有关代码,但我水平有限,跟来跟去我也没跟出个名堂来.所以就想:既然处于选择状态时删除没有问题,那我只要在删除之前退出编辑状态不就可以了吗!所以提出以上问题.另外还要说明的是(1)"高手.高手.高高手"(zhoujianhei)的方法也是可行的.(2)我的程序在RELEASE版下是没有问题的.多谢诸位热心相助!我还要继续努力!如果大家有空不妨讨论一下上面我说的谁执行在前在后的问题! "f:\sp\vctools\vc7libs\ship\atlmfc\src\mfc\winctrl2.cpp 第733行你工程里有这个文件,去掉它...或者你头文件目录列表里有这个目录,应该去掉了 To:jtkk我还想问的是:这条消息发送出去后,响应这条消息的处理函数执行在先还是SendMessage的下一条语句执行在先?如果是SendMessage的下一条语句在先,那有没有办法让刚才发送的消息的处理函数先执行? 发送消息后,一般情况下是相应消息的处理函数先执行 你可以SetFocus()到别的控件。或"高手.高手.高高手"(zhoujianhei)的方法 谢谢诸位!<<SendMessage与PostMessage>>:http://www.cnblogs.com/ahuo/archive/2007/07/21/826555.html HTREEITEM hTreeItem = treeCtrl.GetSelectedItem();treeCtrl.SelectItem(hTreeItem); treeCtrl.SetFocus();m_temp = treeCtrl.GetItemText(hTreeItem);//m_temp这个值在以前记录,选中结点的内容 void CXXDlg::OnEndLabelEdit(LPNMHDR pnmhdr, LRESULT *pLResult) { TV_DISPINFO *ptvinfo; ptvinfo = (TV_DISPINFO *)pnmhdr; ptvinfo->item.mask = TVIF_TEXT; treeCtrl.SetItem(&ptvinfo->item); if(ptvinfo->item.pszText==NULL) //未取消编辑,以前的内容没变,值没修改,返回以前的值 treeCtrl.SetItemText(ptvinfo->item.hItem,m_temp); } 多媒体定时器 如何合并两个CImagelist 求教一个函数,我记不清楚了 ReadProcessMemory读取内存 字符串 问题 如何再在MFC下和windows下实现文件的拷贝?? 有了dll和它的.h头文件,怎么调用还是无法调用啊!! 100 分求TOOLBAR 上放 EDIT控件的例子! 请问masterz,怎么才能使CHtmlView处理鼠标消息。 vc+ado访问sql数据库的查询算法??删除算法?? 大家帮我看看下面的代码有错吗?编译时总是通不过,改了半天也改不过来。。。 如何向FTP服务器发送NOOP,保持长连接!
仔细想想,这个问题好像存在逻辑错误!下面让我来分析:让用户点击 Item 时,进入编辑状态;这时,只要用鼠标点任何一个地方,或者按TAB键,就会退出编辑状态。根本就不需要你来处理。
你真正需要处理的是:退出编辑状态时,你是否要接受用户的输入。
这个问题的提出是这样的:测试DEBUG版的时候发现如果树节点处于编辑状态时,从菜单选择"删除"时会发生断言失败,.NET C++给出的消是"f:\sp\vctools\vc7libs\ship\atlmfc\src\mfc\winctrl2.cpp 第733行".可实际上我的电脑就没有F盘.
我试图跟踪有关代码,但我水平有限,跟来跟去我也没跟出个名堂来.所以就想:既然处于选择状态时删除没有问题,那我只要在删除之前退出编辑状态不就可以了吗!所以提出以上问题.
另外还要说明的是
(1)"高手.高手.高高手"(zhoujianhei)的方法也是可行的.
(2)我的程序在RELEASE版下是没有问题的.
多谢诸位热心相助!
我还要继续努力!
如果大家有空不妨讨论一下上面我说的谁执行在前在后的问题!
你工程里有这个文件,去掉它...
或者你头文件目录列表里有这个目录,应该去掉了
我还想问的是:这条消息发送出去后,响应这条消息的处理函数执行在先还是SendMessage的下一条语句执行在先?如果是SendMessage的下一条语句在先,那有没有办法让刚才发送的消息的处理函数先执行? 发送消息后,一般情况下是相应消息的处理函数先执行
<<SendMessage与PostMessage>>:http://www.cnblogs.com/ahuo/archive/2007/07/21/826555.html
treeCtrl.SelectItem(hTreeItem);
treeCtrl.SetFocus();
m_temp = treeCtrl.GetItemText(hTreeItem);//m_temp这个值在以前记录,选中结点的内容
void CXXDlg::OnEndLabelEdit(LPNMHDR pnmhdr, LRESULT *pLResult)
{
TV_DISPINFO *ptvinfo;
ptvinfo = (TV_DISPINFO *)pnmhdr;
ptvinfo->item.mask = TVIF_TEXT;
treeCtrl.SetItem(&ptvinfo->item);
if(ptvinfo->item.pszText==NULL) //未取消编辑,以前的内容没变,值没修改,返回以前的值
treeCtrl.SetItemText(ptvinfo->item.hItem,m_temp);
}