ScreenToClient失败解决方法
ScreenToClient失败
代码如下:
坐标转换之后还是在屏幕的左上角阿!
GetCursorPos(PPoint);用这个函数就可以!
------解决方案--------------------
void CMyView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//MessageBox("鼠标右键点击!");
CMenu RMenu,*pSubMenu;
//LPPOINT PPoint=new POINT;
//GetCursorPos(PPoint);
//ScreenToClient(PPoint); // 这之前要先给PPoint初始化,指定一个点
ClientToScreen(&point);
RMenu.LoadMenu(IDR_MAINFRAME);
pSubMenu=RMenu.GetSubMenu(0);
pSubMenu->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
delete PPoint;
CView::OnRButtonDown(nFlags, point);
}
代码如下:
void CMyView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//MessageBox("鼠标右键点击!");
CMenu RMenu,*pSubMenu;
LPPOINT PPoint=new POINT;
//GetCursorPos(PPoint);
ScreenToClient(PPoint);
RMenu.LoadMenu(IDR_MAINFRAME);
pSubMenu=RMenu.GetSubMenu(0);
pSubMenu->TrackPopupMenu(TPM_LEFTALIGN,PPoint->x,PPoint->y,this);
delete PPoint;
CView::OnRButtonDown(nFlags, point);
}
坐标转换之后还是在屏幕的左上角阿!
GetCursorPos(PPoint);用这个函数就可以!
------解决方案--------------------
void CMyView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//MessageBox("鼠标右键点击!");
CMenu RMenu,*pSubMenu;
//LPPOINT PPoint=new POINT;
//GetCursorPos(PPoint);
//ScreenToClient(PPoint); // 这之前要先给PPoint初始化,指定一个点
ClientToScreen(&point);
RMenu.LoadMenu(IDR_MAINFRAME);
pSubMenu=RMenu.GetSubMenu(0);
pSubMenu->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
delete PPoint;
CView::OnRButtonDown(nFlags, point);
}