如何实现单击左键弹出popupmenu??我在对话框中放了一个listctrl,添加单击消息之后要弹出popupmenu
但是弹出的menu总是不能获得鼠标的坐标,而是跟随TrackPopupMenu设置的位置
下面是代码:
CMenu menu;
VERIFY(menu.LoadMenu(IDR_MENU1)); CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CWnd* pWndPopupOwner = this; while (pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
pPopup->TrackPopupMenu(TPM_LEFTBUTTON|TPM_RIGHTALIGN, point.x, point.y, pWndPopupOwner);
请问高手有什么办法吗??
但是弹出的menu总是不能获得鼠标的坐标,而是跟随TrackPopupMenu设置的位置
下面是代码:
CMenu menu;
VERIFY(menu.LoadMenu(IDR_MENU1)); CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CWnd* pWndPopupOwner = this; while (pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
pPopup->TrackPopupMenu(TPM_LEFTBUTTON|TPM_RIGHTALIGN, point.x, point.y, pWndPopupOwner);
请问高手有什么办法吗??
解决方案 »
- 任务要求:点下对话框里的一个按钮,就弹出一个悬浮窗口,而且悬浮窗口要在0.5秒左右的时间移动到另一个位置(比如说右下角)
- 使用CArchive来保存数据文件,如果在linux下用C++怎么解析?
- 出错!help...
- MFC中绘图时, 怎么样创建的Font,\ Brush\Pen 需要DeleteObject ???
- 求解Winpcap编程中的一个问题
- 问一个用C语言实现的,网络数据包捕获与还原分析问题
- 我用getsavefilename打开保存文件的对话框后如何获取我修改后的保存文件名!
- 虚心请教VC返回字符串的问题
- 如何将CIPAddressCtrl中的值转化为char型的?
- 初级问题:怎样使用CMultiLock
- 请问监控注册表变化的api函数是什么?
- 编译问题求助?
{
CMenu m_NewMenu;
m_NewMenu.LoadMenu(IDR_MAINFRAME);
ClientToScreen(&point);
m_NewMenu.GetSubMenu(0)->TrackPopupMenu
(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x,
point.y, this);
CView::OnLButtonDown(nFlags, point);
}
m_NewMenu.LoadMenu(IDR_MENU1);
void CTestDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult,CWnd* pWnd,CPoint point,UINT nFlags)
{
// TODO: Add your control notification handler code here
// CPoint point;
CMenu menu;
VERIFY(menu.LoadMenu(IDR_MENU1));
ClientToScreen(&point);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x, point.y, this);
// CDialog::OnNcLButtonDown(nFlags, point);
CDialog::OnNcLButtonDblClk(nFlags, point);// *pResult = 0;
}这样也不行,popupmenu总是出现在屏幕的最右下方,没有跟随鼠标,请问怎么办啊??
CMenu* pPopup = oMenu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CPoint oPoint;
GetCursorPos( &oPoint );
SetForegroundWindow();
pPopup->TrackPopupMenu(
TPM_LEFTALIGN | TPM_RIGHTBUTTON,
oPoint.x, oPoint.y, this);