我在右键响应中发送消息给WM_CONTEXTMENU,在OnContextMenu里处理右键菜单。我还有一些Edit用于显示TreeItem的一些参数(比如名称等),在TVN_SELCHANGED消息中显示出这些内容。现在的问题是,我右键第一次点击时,菜单能出来,Edit也能显示;如果鼠标不动,再点一下右键,那菜单能出来,但是Edit就不能显示了!开始我以为是鼠标不动就不会再发送TVN_SELCHANGED消息,但是我人为的在右键响应函数中调用TVN_SELCHANGED消息对应的函数,还是不行!困扰我好久了阿,这是什么原因阿!各位高手,敬请赐教!
解决方案 »
- VC 怎样屏蔽一个WM消息
- VC6/ADO/ACCESS调用SQL语句的入门问题.
- 高手请进,在VC如何做一个控件,供C#调用,放到IE浏览器上?
- 写程序,怎样才能获得局域网中其他机器的开关机情况,cpu,内存等使用情况,谢谢!
- 在对话框的 OnCtlColor 中没有只读控件的句柄
- 我想实现跟踪,怎样调出VS.net 2003的调用堆栈页面?
- 哪位大哥有MP3的编码解码原理和源代码?
- WTL里如何实现CCmdTarget
- memcpy使什么意思啊
- 两个对话框之间如何进行通信,如传递变量值。只能通过全局变量吗?
- 一个.NET中怪异的小问题请教大家!!!!!!!!!
- BCG pro 731 ,到底怎么用啊,照着做,都出错,烦死了
-----------------------------------------------------------------------
这句话实在不明白是啥意思用TPM_RETURNCMD标志位不是可以返回所选择的命令直接处理吗?
我是在右键点击的消息对应的那个函数中发送消息给OnContextMenu函数,在
OnContextMenu中处理右键菜单,因为我的右键菜单有很多种形式,所以干脆封装在一个函数里面了。下面这样发消息没有错的,我的右键菜单完全正确。不过就是存在我上面说的那个问题。// 响应右键点击
void CTestTreeDlg::OnNMRclickTree(NMHDR *pNMHDR, LRESULT *pResult)
{
// 当右键点击时,发送消息给OnContextMenu(),弹出右键菜单
SendMessage(WM_CONTEXTMENU, (WPARAM) m_hWnd, GetMessagePos());
*pResult = 1;
}
// 弹出右键菜单
void CUserClassDlg::OnContextMenu(CWnd* pWnd, CPoint ptMousePos)
{
……
}
调试的时候看一下有没有正确附值