【MFC教程】消息映射机制

 mfc头文件:

#include<afxwin.h>//mfc头文件

class MyApp:public CWinApp //CWinApp 应用程序类
{
public:
	//程序入口
	virtual BOOL InitInstance();


};

class MyFrame:public CFrameWnd //窗口框架类

{
public:
	MyFrame();

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

	afx_msg void OnLButtonDown(UINT, CPoint);//鼠标按下

	afx_msg void OnChar(UINT,UINT,UINT);//键盘

	afx_msg void OnPaint();
};

源文件:

#include"MfcTest.h"

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


BOOL MyApp::InitInstance()
{
	//创建窗口
	MyFrame * frame = new MyFrame;

	//显示和更新
	frame->ShowWindow(SW_SHOWNORMAL);
	frame->UpdateWindow();
	
	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("mfc"));
}

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::OnChar(UINT key,UINT,UINT)
{
	CString str;

	str.Format(TEXT("按下了%c键"),key);

	MessageBox(str);
}

void MyFrame::OnPaint()
{
	CPaintDC dc(this);//画家类 this 代表绘图设备
	//CDC里找其他能画的图形
	dc.TextOutW(100,100,TEXT("HELLO"));
	//画椭圆
	dc.Ellipse(10,10,100,100);



}

效果图:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值