MFC实现获取鼠标坐标(附完整源码)
发布时间
阅读量:
阅读量
MFC实现获取鼠标坐标
下面是一个基于MFC的简单示例代码,展示了如何捕获鼠标位置并以窗口界面的形式呈现。随着鼠标在窗体内发生位置变化时,程序会即时更新并展示鼠标的当前屏幕坐标信息。
// MouseCoordinatesDlg.h
#pragma once
#include "afxwin.h"
class CMouseCoordinatesDlg : public CDialogEx
{
public:
CMouseCoordinatesDlg(CWnd* pParent = nullptr);
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_MOUSECOORDINATES_DIALOG };
#endif
protected:
HICON m_hIcon;
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
private:
CStatic m_staticMouseCoordinates;
};
// MouseCoordinatesDlg.cpp
#include "pch.h"
#include "framework.h"
#include "MouseCoordinates.h"
#include "MouseCoordinatesDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CMouseCoordinatesDlg::CMouseCoordinatesDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MOUSECOORDINATES_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMouseCoordinatesDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_STATIC_MOUSE_COORDINATES, m_staticMouseCoordinates);
}
BEGIN_MESSAGE_MAP(CMouseCoordinatesDlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
BOOL CMouseCoordinatesDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
return TRUE;
}
void CMouseCoordinatesDlg::OnPaint()
{
CPaintDC dc(this);
}
HCURSOR CMouseCoordinatesDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CMouseCoordinatesDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// 将鼠标坐标转换为屏幕坐标
ClientToScreen(&point);
// 格式化坐标字符串
CString strCoordinates;
strCoordinates.Format(_T("鼠标坐标:%d, %d"), point.x, point.y);
// 在静态文本框中显示坐标
m_staticMouseCoordinates.SetWindowText(strCoordinates);
CDialogEx::OnMouseMove(nFlags, point);
}
在以下示例中,在线Mouse移动事件函数主要负责捕获当前屏幕的坐标值,并将这些数值以文本形式显示于静态文本框内。
在资源编辑器中搭建相应的对话框与控件,并配置对应的消息处理逻辑。仅作为一个演示获取鼠标位置并显示的基础案例。你可以依据具体要求实现更为复杂的鼠标交互与显示效果。
这篇文章是一篇原创文章。不得在未经博主同意的情况下转载此篇文章。本文章博客地址:
全部评论 (0)
还没有任何评论哟~
