新建项目->MFC模板->MFC应用程序->应用程序类型:单个文档;项目样式:MFC 标准->下一步...OK

此时点击运行,可直接弹出窗口。

调整 视图->类视图:

  ·CAboutDlg,帮助选卡->关于对话框

  ·CMainFrame,框架类,相框,PreCreateWindow可修改窗口外观,光标,图标;Create注册,调用OnCreate产生窗口;

  ·CMFCTestApp,InitInstance入口

  ·CMFCTestDoc,数据的存储和加载

  ·CMFCTestView,数据的显示和修改,相片

右键CMFTestView->属性->消息->WM_LBUTTONDOWN->OnLButtonDown;(自动创建,取消步骤相同,但取消只是逻辑删除,即注释掉了,并未真正删除)

//文件名:CMainFrame.h:

class CMainFrame : public CFrameWnd

// 生成的消息映射函数
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()//消息映射宏

//文件名:CMainFrame.cpp

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)//分界宏
ON_WM_CREATE() ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()

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

return TRUE;
}

//文件名:CMFCTestApp.cpp

BOOL CMFCTestApp::InitInstance(){

  ... ...

// 唯一的一个窗口已初始化,因此显示它并对其进行更新
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}

//文件名:CMFCTestView.h

class CMFCTestView : public CView

// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnPaint();

//文件名:CMFCTestView.cpp

// CMFCTestView 绘图
void CMFCTestView::OnDraw(CDC* pDC)
{
CMFCTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return; // TODO: 在此处为本机数据添加绘制代码
pDC->TextOutW(, , TEXT("为了部落"));
}

// CMFCTestView 消息处理程序

void CMFCTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString str;
str.Format(TEXT("x=%d,y=%d"), point.x, point.y);
MessageBox(str); CView::OnLButtonDown(nFlags, point);
}

//如果使用了OnDraw,就不要再使用OnPaint了;OnPaint会覆盖OnDraw;

void CMFCTestView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
dc.TextOutW(, , TEXT("为了联盟"));
}

ps:

后缀Ex为扩展函数;

前缀Afx为全局函数,解决父类不相关问题。

MFC/QT 学习笔记(三)——MFC模板创建的更多相关文章

  1. MFC/QT 学习笔记(二)——MFC入门

    MFC以C++形式封装了Windows API //实践 编写MFC需要的头文件#include <afxwin.h> 程序执行流程: 实例化应用程序对象(有且只有一个) 执行程序入口函数 ...

  2. MFC/QT 学习笔记(四)——MFC基于对话框学习控件(上)

    新建项目->MFC模板->MFC应用程序->应用程序类型:基于对话框->...OK 解决方案资源管理器->资源文件->xxx.rc->进入:资源视图-> ...

  3. MFC/QT 学习笔记(一)——认识windows基础库

    MFC (微软基础类库),Windows系统平台做GUI尚且OK,但不支持跨平台. //Windows消息机制: //1.SDK与API Software Development Kit,为特定软件框 ...

  4. MFC/QT 学习笔记(四)——MFC基于对话框学习控件(下)

    //5.列表控件 ListControl 属性 报表模式 view:Report:添加变量 //Cdemo5Dlg.cpp ps:资源视图 右键 类向导 成员变量 查看对象所属类 // TODO: 在 ...

  5. 【Qt编程】Qt学习笔记<三>

    1.      如果程序中使用了png以外格式的图片,在发布程序时就要将Qt安装目录下plugins中的imagineformats文件复制到发布文件中. 2.      在函数声明处快速添加函数定义 ...

  6. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  7. Qt学习笔记-Widget布局管理

    Qt学习笔记4-Widget布局管理       以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,f ...

  8. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  9. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

随机推荐

  1. 创建自定义的RouteBase实现(Creating a Custom RouteBase Implementation) |定制路由系统 |

  2. Centos与Ubuntu

    共同点 1.两个系统都分别有桌面系统与服务器系统,不过ubuntu的桌面从外观上来看要比centos的漂亮 不同点 1.centos中新建的普通用户是没有sudo权限的,如果想让普通用户拥有sudo权 ...

  3. Xmind8 Pro 破解教程(序列号|破解文件)

    最近需要打开文件后缀名为.xmind的文件,所以下载了Xmind8 .打开以后想要导出,奈何普通版本只能导出.txt文本文档,所以只好动手pj.话不多说看下边.一.下载XMindCrack.jar文件 ...

  4. nmap详解之选项说明

    功能选项 功能选项可以组合使用.一些功能选项只能够在某种扫描模式下使用.nmap会自动识别无效或者不支持的功能选项组合,并向用户发出警告信息. 如果你是有经验的用户,可以略过结尾的示例一节.可以使用n ...

  5. java容器(二) Map类框架图解

  6. AS中加载gradle时出现Gradle sync failed: Could not find com.android.tools.build:gradle.的错误

    时间:2019/12/7 这次接着整理加载gradle时出现的错误 出现的错误: Gradle sync failed: Could not find com.android.tools.build: ...

  7. 集合详解之 Map

    集合详解之 Map + 面试题 集合有两个大接口:Collection 和 Map,本文重点来讲解集合中另一个常用的集合类型 Map. 以下是 Map 的继承关系图: Map 简介 Map 常用的实现 ...

  8. Kubelet 中的 “PLEG is not healthy” 到底是个什么鬼?

    原文链接:深入理解 Kubelet 中的 PLEG is not healthy 在 Kubernetes 社区中,PLEG is not healthy 成名已久,只要出现这个报错,就有很大概率造成 ...

  9. SSH(三)

    在Spring中引用属性文件:    优点:        1.防止随意更改jdbc的连接        2.给不懂代码的人使用    步骤:        1.数据库连接信息写在属性文件中      ...

  10. 啥?你想diy一个智能音箱,来吧

    没错,这是智zhang语音助手 本系统基于自美系统二次开发,添加连接EMQ服务器,语音远程控制LED(Nodemcu),当然也可以扩展控制更多的设备,只需要将下位机设备连接到EMQ服务器即可. 由于使 ...