版权声明:本文为博主原创文章,未经博主允许不得转载。
获取控件的焦点方法为 Getforce
一: 实现方法:主要在WM_MouseMove消息内部实现坐标的获取
使用函数:GetCursorPos(&p)
二:测试代码
void CGetPointDlg::OnMouseMove(UINT nFlags, CPoint point)
{
/*以下为获取鼠标当前点在屏幕上面的坐标
(x,y)坐标是以整个屏幕为参照
*/
CString m_csPointScreen;
CPoint p;
GetCursorPos(&p);
m_csPointScreen.Format(_T("%d,%d"),p.x, p.y);
m_edit2.SetWindowText(m_csPointScreen);
/*以下为获取鼠标当前点在窗口(客户区坐标)上面的坐标
(x,y)坐标是以客户区原点(即窗口标题以下,左侧边框往右)为参照*/
CString m_csPointWindow;
m_csPointWindow.Format(_T("%d,%d"),point.x, point.y);
m_editPoint.SetWindowText(m_csPointWindow);
CDialog::OnMouseMove(nFlags, point);
}
应该在WM_SETCURSOR消息响应函数中设置光标, 注意返回值应当为FALSE, 屏蔽掉默认的代码。
代码:
BOOL CCutPicDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
SetCursor(LoadCursor(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDC_CURSORRECT)));
return FALSE;
//return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
1、 自己绘制的光标。
SetCursor(LoadCursor(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDC_CURSORRECT))); // LoadCursor的第一个参数为AfxGetInstanceHandle()
2、 系统定义标准光标。
SetCursor(LoadCursor(NULL, IDC_CROSS)); // LoadCursor的第一个参数为NULL
三:测试效果
- 0
顶
-
踩