简单MFC程序开发-C++反编译肉鸡养成

目录

一、需求

二、程序效果

效果1:鼠标左键点击,显示坐标

效果2:按下按键,显示键值

三、实现过程

1.创建MFC程序

2.修改添加功能

2.1 修改标题

2.2 增加鼠标消息

 2.3 增加键盘消息

 2.4 显示文字函数

2.5 编译生成exe


一、需求

     为了更好的理解MFC(C++)程序的结构,拆解方法,需要首先创建一个MFC窗口程序,对于只了解一点C++的工程师来说,走一遍MFC程序开发的流程,是很有必有的,无奈C++开发工具的版本太多,很难找到visual studio 2022版本的,因此有必要写一写。

二、程序效果

效果1:鼠标左键点击,显示坐标

简单MFC程序开发-C++反编译肉鸡养成_第1张图片

效果2:按下按键,显示键值

简单MFC程序开发-C++反编译肉鸡养成_第2张图片

三、实现过程

1.创建MFC程序

打开visual studio 2022选择创建MFC程序。

简单MFC程序开发-C++反编译肉鸡养成_第3张图片

选择单个文档,MFC标准界面

简单MFC程序开发-C++反编译肉鸡养成_第4张图片

会看到产生了5个类其中MainFrame是主窗体,view是类似窗体上的画布。

简单MFC程序开发-C++反编译肉鸡养成_第5张图片

2.修改添加功能

2.1 修改标题

不像基于对话框的窗体,可以在属性页面直接更改标题,需要在窗体创建前的PreCreateWindow里初始化窗体名称,但要先取消默认窗体的设置。

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)//更改窗体的一些参数
{
	

	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: 在此处通过修改
	//  CREATESTRUCT cs 来修改窗口类或样式

	cs.style &= ~FWS_ADDTOTITLE;/*在单文档的界面中,程序默认的窗口样式是WS_OVERLAPPEDWINDOW和FWS_ADDTOTITLE,
								FWS_ADDTOTITLE是MFC特定的一种样式,指示框架将文档标题添加到窗口标题之上,如果
								想让窗口显示自己的标题,只需要将窗口的FWS_ADDTOTITLE样式去掉即可。*/
	cs.lpszName = TEXT("Hali-- C++反编译demo程序");

	return TRUE;
}

2.2 增加鼠标消息

        这一个实例主要是运用MFC的消息机制,因此选择类,开启监听的消息类别(如WM_LBUTTONUP),创建该类消息的处理函数(如OnLButtonUp),添加方法为:

简单MFC程序开发-C++反编译肉鸡养成_第6张图片

修改代码:

void CMFCApplication5View::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	CString key;
	key.Format(TEXT("X is %d ,Y is %d"), point.x,point.y);
	MessageBox(key);
	CView::OnLButtonUp(nFlags, point);
}

 2.3 增加键盘消息

键盘事件是WM_CHAR(),处理函数默认为onChar(),添加方法为:

简单MFC程序开发-C++反编译肉鸡养成_第7张图片

修改代码:

void CMFCApplication5View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	CString key;
	key.Format(TEXT("KEY Is %c"),nChar);
	MessageBox(key);

	CView::OnChar(nChar, nRepCnt, nFlags);
}

 2.4 显示文字函数

        显示文件的事件为PAINT或者DRAW,添加方法为:

简单MFC程序开发-C++反编译肉鸡养成_第8张图片

 添加代码:

void CMFCApplication5View::OnPaint()
{
	CPaintDC dc(this); // device context for painting
					   // TODO: 在此处添加消息处理程序代码
					   // 不为绘图消息调用 CView::OnPaint()
	dc.TextOutW(10, 20, TEXT("Hali onpaint C++"));
}

2.5 编译生成exe

选择Debug、X86模式编译,生成鲜美的MFC肉鸡,准备投入IDA进行分析。

四、启动反编译观察exe

你可能感兴趣的:(物联网信息安全,开发技术笔记,mfc,c++,visual,studio)