MFC学习笔记一,HelloMFC

//--------学习笔记搬家------

第一个MFC程序HelloMFC

1.使用VS2013新建Win32项目,项目名称HelloMFC。

2.添加项,添加.h文件,文件名HelloMFC.h。

3.在HelloMFC.h文件中添加以下代码:

 1 //HelloMFC.h
 2
 3 class CMyApp:public CWinApp
 4 {
 5 public:
 6     virtual BOOL InitInstance();
 7 };
 8
 9 class CMainWindow :public CFrameWnd
10 {
11 public:
12     CMainWindow();
13 protected:
14     afx_msg void OnPaint();
15     DECLARE_MESSAGE_MAP()
16 };

注:此时class CMyApp:public CWinApp 报警,原因需在.cpp文件中加入包含头文件。

4.添加项.cpp,文件名HelloMFC.cpp,文件中添加以下代码:

 1 #include <afxwin.h>
 2 #include"HelloMFC.h"
 3
 4 CMyApp myApp;
 5 BOOL CMyApp::InitInstance()
 6 {
 7     m_pMainWnd = new CMainWindow;
 8     m_pMainWnd->ShowWindow(m_nCmdShow);
 9     m_pMainWnd->UpdateWindow();
10     return TRUE;
11 }
12
13 BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
14     ON_WM_PAINT()
15 END_MESSAGE_MAP()
16
17 CMainWindow::CMainWindow()
18 {
19     Create(NULL,_T("FirstMFC"));
20 }
21
22 void CMainWindow::OnPaint()
23 {
24     CPaintDC dc(this);
25     CRect rect;
26     GetClientRect(&rect);
27     dc.DrawText(_T("Hello,MFC!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
28 }

注:第3步报警处待在HelloMFC.cpp文件中添加#include <afxwin.h>解除报警。

编译运行会提示:Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

处理办法:在项目属性/常规/MFC的使用,选择在共享DLL中使用MFC

http://www.cnblogs.com/haihai187/p/4392096.html

效果图:

//心德

1.窗口的功能全部有效,可以移动它,调整其尺寸大小,最大化,最小化,关闭,窗口缩放时,窗口中心始终重新绘制文字Hello,MFC。

2.程序类名为CMyApp,实例化:CMyapp myApp;

3.类声明在HelloMFC.h中:

class CMyApp:public CWinApp
{
public:
    virtual BOOL InitInstance();
};
时间: 2024-11-05 04:53:58

MFC学习笔记一,HelloMFC的相关文章

MFC学习笔记1---准备工作

什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程序猿的工作,将C++面向对象这一特点很好的表现出来. 用MFC可以用鼠标来编辑界面,管理各种控件,以及简化一些操作如字符串操作.文件操作.时间日期操作.网络操作.Windows系统操作.数据库操作…… 既然MFC是类库,那么她必然会用到类的特性:模板类.类的封装继承.虚继承.多态性等等. 然而就我的

MFC学习笔记2--C++的重要性质

封装(encapsulation):类及其成员:属性,方法. 继承(Inheritance):基类(base class),派生类(derived class) this指针 虚函数与多态(Polymorphism) Object slicing与虚函数 静态成员(变量与函数) 构造函数与析构函数 四种不同的对象生成方式(in stack,int heap,global,local static) 1.在堆栈中产生一个对象: void MyFunc() { CFoo foo; ... } 2.在

孙鑫MFC学习笔记1:Win32程序运行原理

1.MSG结构 hwnd:窗口句柄 message:消息类型 wParam & lParam:消息的附加信息(比如键值) time:消息被投递的时间 tip:typedef的作用是从变量类型区分变量用途 2.WinMain 3.程序开发步骤 4.设计窗口类 5.创建窗口.显示窗口.更新窗口 6.回调函数 tip:BeginPaint.EndPaint只能在响应WM_PAINT消息中使用,而GetDC不能在这里使用 tip:if语句中如果是常量与变量比较是否相等,应该把常量写在左边(可以避免把==

mfc学习笔记

1. Windows API函数根据功能大体可以分为以下三大类型 窗口管理函数:实现窗口创建.移动和修改等功能: 图形设备函数:又称图形设备接口,实现图形的绘制及操作功能: 系统服务函数:实现与操作系统有关的一些功能. 2. 句柄:在Windows应用程序中除了普通变量之外的诸如窗口.按钮.滚动条等复杂的程序对象和实例的标识.不同Windows对象具有不同的类型,常用句柄类型见下表1. 表1:常用的句柄类型 句柄类型 说明 句柄类型 说明 HWND 窗口句柄 HDC 图形设备环境句柄 HINST

MFC学习笔记之12:用窗口过程WH_CALLWNDPROC钩子+子类化实现皮肤功能

实现方法: 1.定义自己的控件类,比如CButtonEx:public CButton,实现自绘. 2.安装WH_CALLWNDPROC钩子 a.定义HHOOK全局变量 HHOOK g_WndProcHook=NULL; b.在CXXAPP ::InitInstance()中安装钩子 g_WndProcHook=SetWindowsHookEx( WH_CALLWNDPROC, (HOOKPROC)CallWndProc, NULL, GetCurrentThreadId()); c.在CXXA

MFC学习笔记之13:将对话框的关闭按钮设置为灰色

CMenu* pSysMenu = GetSystemMenu(FALSE); int i = pSysMenu->GetMenuItemID(1); pSysMenu->EnableMenuItem(i,MF_DISABLED);

孙鑫MFC学习笔记1.Windows应用程序运行机理

留下一幅"别有洞天"的墨宝只是不知是驿馆太过珍视的缘故还是那四个字太过"铁画 舛蚂迤筢 城门校尉睁大眼睛认清了世子殿下尊容忙不迭吆喝开启城门生怕惹恼了这位北凉混世魔 赵衡对此洒然一笑端坐在一张由沉星紫檀拼凑而成的太师椅上客栈装饰再华贵也拿不 迮仅遢妁 啶私つ娉 ハ岸觎 柘粳葚津 廛什店芝 锺弑囚黹 范长后双手握拳搁在膝盖上隐约有些怒气"这也就罢了十大罪中竟还有私通边军一事 匣纷シ拧 铨匾强蜗 戮袂番烀 到一年左祭酒桓温一时间就成了众望所归的大佬.尚书省直厅中除了中

MFC学习笔记_关于CSpinButtonCtrl

CSpinButtonCtrl使用起来比较特殊,使用起来,需要注意一些地方.实际的教程也比较少.为了让后人少走弯路,这里写这篇文章以说明.1.添加EDIT控件2.添加Spin控件如果不是这样的顺序的话,使用ctrl+D改变Tab顺序,使spin紧靠edit后面3.在EDIT控件上面设置group属性(特别注意)4.在Spin控件上设置Auto Buddy 为 trueSet Buddy Integer 为 trueAlignment 为 Right Align5.添加Edit控件 int 变量

MFC学习笔记3---使对话框风格与系统统一

有一件郁闷了我很久的事情,在VS中编辑对话框或者点击预览时都是以Win7风格体现的按钮及对话框: 点击上图测试对话框: 然而生成的应用程序却是这样的: 这样人很不爽啊,按钮风格回到了N年前的版本,复古版啊有木有 我在网上找到的解决方案如下: 首先在RES目录下建一个文本文件,命名 windows.manifest 后缀为:.manifest 然后再用记事本打开放入如下代码: <?xml version="1.0" encoding="UTF-8" standa