如何获得contextmenu所点击控件的指针

zsylizard 2005-11-06 10:11:18
在我的窗体上有一控件是根据运行情况自动生成的,每个生成的控件右击鼠标都会弹出contextmenu,如何得到contextmenu所在控件的指针呢?
...全文
123 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxuu503 2006-05-01
  • 打赏
  • 举报
回复
就是这个


this.contextMenu1.SourceControl.Handle
wdcszl 2006-05-01
  • 打赏
  • 举报
回复
我也想知道
zsylizard 2005-11-08
  • 打赏
  • 举报
回复
没有知道吗????
zsylizard 2005-11-07
  • 打赏
  • 举报
回复
contextmenu已经指定了,现在是要点其中一个控件时,如何得到所点击控件的指针
feiyun0112 2005-11-06
  • 打赏
  • 举报
回复
生成控件时指定contextmenu属性
kjq_vb 2005-11-06
  • 打赏
  • 举报
回复
不知你的意思是不是这样:
可以用个全局变量,当右键单击时就给这变量赋值,然后根据这个值去取得是那个控件
完美实现真彩自绘菜单 相当不错的源码 1、MFC框架调用的GetMenu()->MeasureItem()就相当于调用了CMenuEx::MeasureItem(),从而实现自绘菜单控件尺寸的测量。 2、MFC框架调用GetMenu()->DrawItem()就相当于调用了CMenuEx::DrawItem()来实现自绘菜单控件的自绘操作(不懂??,这正是C++的虚拟的妙用,指向派生类对象的基类指针可以调用派生类的虚拟函数,多么伟大的发明,谁想出来的???)。与子菜单是否为弹出菜单(popupmenu)没有什么关系。以下是摘自WINCORE.CPP的一段程序,也就是WM_MEASUREITEM消息的默认流向的地方,相信大家会从中看出一些端倪。 void CWnd::OnMeasureItem(int /*nIDCtl*/, LPMEASUREITEMSTRUCT lpMeasureItemStruct) { if (lpMeasureItemStruct->CtlType == ODT_MENU) { ...... // 如果没有主菜单 if (pThreadState->m_hTrackingWindow == m_hWnd) { ...... } else { // 如果有主菜单 pMenu = GetMenu(); // 找到窗体的主菜单,注意,pMenu的是CMenu* 类型 } // 在当前菜单中寻找ID匹配的菜单项 pMenu = _AfxFindPopupMenuFromID(pMenu, lpMeasureItemStruct->itemID); if (pMenu != NULL) // 如果找到,就调用MeasureItem() // 这就是所谓的基类指针指向派生类对象,可以调用派生类虚拟函数的情况了 pMenu->MeasureItem(lpMeasureItemStruct); else TRACE1("Warning: unknown WM_MEASUREITEM for menu item 0x%04X.\n", lpMeasureItemStruct->itemID); } else { ...... } ...... }

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧