• 类参数Hello MFC 之疯狂注释版


    在本篇文章中,我们主要介绍类参数的内容,自我感觉有个不错的建议和大家分享下

        回想刚学习MFC编程的时候,打开《MFC windows程序设计》这本书,书中给的第一段代码就是一个Hello MFC的小程序。看得我头大,书中讲解的很详细,几乎每行代码都给了解释。但解释归解释,我一行一行的揣摩这些代码,还是不知道它们是什么意思。于是我把代码一行一行的敲到了编译器里,并找着书上的讲解,给每行代码都标上了长长的、详细的注释。尽管有的注释写上去后我还是不懂,但总算完成了这个HelloMFC 之疯狂注释版。明天翻出来,贴上来记念一下。

        可以发明,Hello MFC的代码比Hello Win32的代码少了很多。不得不说MFC确实让我们开发Win32程序更便利。MFC的魅力在于对API的封装思惟。当初很多SDK开发包尤其是系统SDK,大部分都是基于C语言的相似windows API的形式。如果我们能学习MFC,把这些API以面向对象的形似封装成类库,使用起来会大大便利!面向对象就是好,MFC的亲兄弟ATL里和COM相干的智能类、STL里的迭代器的实现,都是值得我们学习的!

        

        每日一道理
    当浮华给予我们过多欺骗,现实中的虚假几乎让我们忘却了真的存在,是真情唤回了迷离的心,是真情带给了我们最纯、最真的感觉,它流露的是美的誓言,渗透的是永恒执著的真爱。
    #include <afxwin.h>
    
    class CMyApp:public CWinApp				//定义一个CMyApp类,用于创立程序本身,继承自CWinApp类	
    {
    	virtual BOOL InitInstance();		//声明InitInstance函数为虚函数
    };
    
    class CMyWnd:public CFrameWnd			//定义一个CMyWnd类,用于创立窗口,继承自CFrameWnd类
    {
    public:
    	CMyWnd();							//声明结构函数
    protected:
    	afx_msg void OnPaint();				//声明OnPaint函数,用于接到消息后重绘客户区
    	DECLARE_MESSAGE_MAP();				//声明消息映射
    };
    
    CMyApp myapp;										//创立一个CMyApp类的对象myapp,在全局区实例化应用程序对象,一个程序至少有一个应用程序对象
    
    BOOL CMyApp::InitInstance()							//定义InitInstance函数,用于创立并表现窗口
    {
    	m_pMainWnd=new CMyWnd;							//创立一个CMyWnd对象并把地址赋给CMyApp类的成员指针变量m_pMainWnd
    	m_pMainWnd->ShowWindow(m_nCmdShow);				//通过该成员指针调用ShowWindow函数来表现它,参数为WinMain函数穿过来的参数,决定窗口初始为最小化、最大化或正常化
    	m_pMainWnd->UpdateWindow();						//刷新窗口,同win32程序设计
    	return true;									//初始化程序窗口正常,返回true使程序继续进行如果返回false则程序立即退出
    }													//一下三个函数为标识消息的宏
    BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd)					//开始消息映射,第一个参数为消息映射所属的类,第二个参数为该类的基类,有了基类名,MFC框架可以再必要时查找基类的消息映射
    ON_WM_PAINT()										//接收处理WM_PAINT类型的消息,该消息在拖动窗口边框,改变窗口大小,移动窗口等行为时触发
    END_MESSAGE_MAP()									//结束消息映射
    
    CMyWnd::CMyWnd()									//定义CMyWnd类的结构函数
    {
    	Create(NULL,_T("The Hello Application"));		//创立CMyWnd类对象时执行该结构函数,第一个参数指定了窗口基于WNDCLASS类的名称,这里将其设定为NULL将创立一个基于由主结构注册的WNDCLASS类的默许框架窗口,第二个参数为在窗口标题栏涌现的文本
    }
    
    void CMyWnd::OnPaint()								//定义CMyWnd类的OnPaint函数,用于重绘客户区
    {
    	CPaintDC dc (this);								//结构一个名为dc的CPaintDC对象,即设备环境对象,所有的图形输出都通过该类的对象来执行
    	CRect rect;										//结构一个代表矩形的CRect对象rect
    	GetClientRect(&rect);							//调用winAPI函数GetClientRect以使用窗口的客户区坐标来初始化rect这个矩形
    	dc.DrawText(_T("Hello,MFC!"),-1,&rect,			//调用CDC类的DrawText函数来在客户区旁边表现"Hello,MFC!"字符串,第一个参数为要表现的字符串,第二个参数为要表现的字符串中的字符数,这里是-1意味着不限定,该字符串是以NULL字符终止的。第三个参数为刚新建的CRect类的对象rect的地址,这里也可所以一个指定格式矩形的一个RECT结构
    		DT_SINGLELINE|DT_CENTER|DT_VCENTER);		//第四个参数为输出选项,DT_SINGLELINE代表单行文本,DT_CENTER和DT_VCENTER代表在格式矩形中水平居中和垂直居中
    }

    文章结束给大家分享下程序员的一些笑话语录: 3G普不普及现在已经不是看终端了,而是看应用,有好的,便宜实用的应用,花1000多买个能用的智能手机应该不是什么难事。反过来说,你200元拿一个智能手机,没有好的应用,看个电影要几十元,也是没人用3G。

    --------------------------------- 原创文章 By
    类和参数
    ---------------------------------

  • 相关阅读:
    Maven pom.xml中添加指定的中央仓库
    命令行远程链接MySQL
    A required class was missing while executing org.apache.maven.plugins:maven-war-plugin:2.1.1:war
    mvn deploy命令上传包
    保存好你的密码
    PuTTY免输密码自动登录Linux
    ActiveMQ无法启动
    linux控制台批量杀进程
    dubbo入门之微服务客户端服务端配置
    dubbo入门之helloWorld
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3112953.html
Copyright © 2020-2023  润新知