2020-10-08

3 篇文章 0 订阅
2 篇文章 0 订阅

MFC中的消息映射机制

声明宏 写道 .h 中

分界宏 写道 .cpp 中 BEGIN_MESSAGE_MAP(子类,父类) …END_MESSAGE_MAP()

找消息宏 写到分界宏中间

把函数原型声明写到 .h 中,函数实现写到 .cpp

鼠标,键盘的实现

代码注释如下

mfc.h

#include <afxwin.h>  //mfc使用的头文件
#include <intsafe.h>

//声明一个应用程序类
class MyApp:public CWinApp  //继承于应用程序类
{
public:
	virtual BOOL InitInstance(); //程序入口

};


class MyFrame :public CFrameWnd //窗口框架类
{
public:
	MyFrame();//保留构造函数即可

	//声明宏 提供消息映射的机制
	DECLARE_MESSAGE_MAP()

	afx_msg void OnLButtonDown(UINT, CPoint);

	afx_msg void OnLButtonUp(UINT, CPoint);

	afx_msg void OnChar(UINT, UINT, UINT);

	afx_msg void OnPaint();

};

mfc.cpp


#include "mfc.h"

MyApp app; //全局的应用程序对象,有且仅有一个

//对类的实现
BOOL MyApp::InitInstance()  //程序入口
{
	//创建窗口  MyFram
	MyFrame * frame = new MyFrame;

	//显示和更新
	frame->ShowWindow(SW_SHOWNORMAL);
	frame->UpdateData();

	m_pMainWnd = frame; //保存指向应用程序的主窗口的指针
	return TRUE; //返回正常的初始化
}

//消息分界宏
BEGIN_MESSAGE_MAP(MyFrame,CFrameWnd)
	ON_WM_LBUTTONDOWN()  //鼠标左键按下

	ON_WM_CHAR()  //键盘

	ON_WM_PAINT() //绘图

END_MESSAGE_MAP()

MyFrame::MyFrame()
{
	Create(NULL, TEXT("湖南科技大学"));
}

void MyFrame::OnLButtonDown(UINT, CPoint point)
{
	TCHAR buf[1024];
	wsprintf(buf, TEXT("x = %d,y = %d"),point.x,point.y);

	MessageBox(buf);

	//mfc中的字符串 ----- CString
	/*CString str;
	str.Format(TEXT("x = %d,,,y = %d"), point.x, point.y);
	MessageBox(str);*/

}

void MyFrame::OnLButtonUp(UINT, CPoint)
{

}


void MyFrame::OnChar(UINT key,UINT,UINT) 
{
	CString str;
	str.Format(TEXT("按下了 %c 键"),key);
	MessageBox(str);
}

void MyFrame::OnPaint()
{
	CPaintDC dc(this);  //MFC中文手册CDC中可查看其他图形

	//dc.TextOutW(100, 100, TEXT("为了部落"));

	dc.Ellipse(10, 10, 100, 100); //


}

mfc创建窗口完结!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值