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);
}