1、院 系: 计算机科学学院 专 业: 软件工程 年 级: 2013 级 课程名称: windows 编程循序渐进 姓 名: 张吉龙 学 号: 201321092023 指导教师: 熊志勇 2015 年 12 月 12 日年级 2013 学号 201321092023专业 软件工程 班号 1301 姓名 张吉龙设计型 综合型 创新型实验名称 自定义消息实验类型 实验目的或要求实验原理(算法流程)各文件关键代码示例:MFCApplication1.h 文件代码如下:/ MFCApplication1.h : PROJECT_NAME 应用程序的主头文件/#pragma once#ifndef _AF
2、XWIN_H_#error “在包含此文件之前包含“stdafx.h ”以生成 PCH 文件“#endif#include “resource.h“ / 主符号/ CMFCApplication1App: / 有关此类的实现,请参阅 MFCApplication1.cppclass CMFCApplication1App : public CWinApppublic:CMFCApplication1App();/ 重写public:virtual BOOL InitInstance();/ 实现DECLARE_MESSAGE_MAP();extern CMFCApplication1App t
3、heApp;MFCApplication1.cpp 文件代码如下:return FALSE;MFCApplication1Dlg.h 文件如下:/ MFCApplication1Dlg.h : 头文件#pragma once#define WM_USERMESSAGE WM_USER+1 /自定义消息宏,用于与消息函数产生映射/ CMFCApplication1Dlg 对话框class CMFCApplication1Dlg : public CDialogEx/ 构造public:CMFCApplication1Dlg(CWnd* pParent = NULL); / 标准构造函数/ 对话框
4、数据enum IDD = IDD_MFCAPPLICATION1_DIALOG ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 实现protected:HICON m_hIcon;/ 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSA
5、GE_MAP()public:afx_msg void OnBnClickedButton1();/按钮的点击事件响应函数afx_msg LRESULT OnUserMessage(WPARAM wParam, LPARAM lParam);/自定义消息的函数;/ MFCApplication1Dlg.cpp : 实现文件BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, LRESULT CM
6、FCApplication1Dlg:OnUserMessage(WPARAM wParam, LPARAM lParam)return MessageBox( L“成功“,L“ 系统提示“, MB_OK);关键点解析:自定义宏:自定义消息函数:添加消息映射:在响应函数里面实现自定义的消息:展示结果:实验结果分析及心得体会成绩评定教师签名:2011 年 月 日年级 2013 学号 201321092023专业 软件工程 班号 1301 姓名 张吉龙设计型 综合型 创新型实验名称 动态链接库实验类型 实验目的或要求实验原理(算法流程)在 VS 里面新建 dll 工程:添加两个文件 mydll.h
7、和 mydll.cpp 文件mydll.h 文件代码如下:#includeusing namespace std;class _declspec(dllexport)Personpublic:Person();Person();void Run();void Thingk();void Calculate();private:;mydll.cpp 文件代码如下:#include“dll.h“Person:Person()Person:Person()void Person:Run()cout “i can Run“endl;void Person:Thingk()cout “i can Think“endl;void Person:Calculate()cout “i can Calculate“endl;新建工程 testDll,在此工程中添加 mydll.dll 链接库文件,新建工程 main.cpp 添加程序入口函数代码如下:#include“dll.h“int main()Person p1;p1.Calculate();p1.Run();return 0;在 testDll 属性里面添加 mydll.dll,mydll.lib 将库连接到本程序中来。运行示例:实验结果分析及心得体会成绩评定教师签名:2011 年 月 日