mfc2--创建最简单的消息映射及事件响应函数

1、本章内容概述

学习mfc最基础的消息响应
最终效果:

1、响应鼠标

输出鼠标点击位置
在这里插入图片描述

2、响应键盘

输出按下的按键(不包括组合键)
在这里插入图片描述

3、响应绘图

绘制文本和一个简单的饼图
在这里插入图片描述

2、步骤

此处代码仅包含对话框类

mfc.h

// 窗口类
class MyFrameWnd : public CFrameWnd
{
public:
	MyFrameWnd();

protected:
	// 3、添加消息响应函数
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnPaint();

	// 1、添加声明宏
	DECLARE_MESSAGE_MAP();
};

mfc.cpp

// 2、添加边界宏
BEGIN_MESSAGE_MAP(MyFrameWnd, CFrameWnd)
	ON_WM_LBUTTONDOWN()
	ON_WM_CHAR()
	ON_WM_PAINT()
END_MESSAGE_MAP()

MyFrameWnd::MyFrameWnd()
{
	Create(NULL, TEXT("Hello MFC"));
}

// 鼠标按下响应
void MyFrameWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
	int xPos = point.x;
	int yPos = point.y;

	CString strPos;
	strPos.Format(TEXT("x = %d, y = %d"), xPos, yPos);

	MessageBox(strPos);
}

// 键盘按下响应
void MyFrameWnd::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	CString strMsg;
	strMsg.Format(L"按下了[%c]键", nChar);

	MessageBox(strMsg);
}

// 绘图响应
void MyFrameWnd::OnPaint()
{
	CPaintDC pdc(this);

	// 绘制文本
	pdc.TextOut(10, 10, L"测试文本");

	// 绘制一个饼图
	CRect rect(CPoint(100, 100), CPoint(300, 300));
	CPoint ptStart(120, 120), ptEnd(200, 200);
	pdc.Pie(rect, ptStart, ptEnd);
}

发布了5 篇原创文章 · 获赞 2 · 访问量 264

猜你喜欢

转载自blog.csdn.net/alarmboy/article/details/105156811