• MFC学习笔记HellowWorld


    VS2008->新建->vsual c++->常规->空项目

    添加个头文件,代码如下

    class CMyApp:public CWinApp
    {
    public:
    	virtual BOOL InitInstance();
    };
    class CMyFrame:public CFrameWnd
    {
    public:
    CMyFrame();
    protected:
    	afx_msg void OnLButtonDown(UINT NfLAGS,CPoint point);
    	afx_msg void OnPaint();
    	DECLARE_MESSAGE_MAP()
    };



    添加个源文件,代码如下

    #include <afxwin.h>
    #include "MyApp.h"
    
    CMyApp theApp;
    
    BOOL CMyApp::InitInstance()
    {
    	m_pMainWnd = new CMyFrame();
    	m_pMainWnd->ShowWindow(m_nCmdShow);
    	m_pMainWnd->UpdateWindow();
    	return true;
    }
    
    BEGIN_MESSAGE_MAP(CMyFrame,CFrameWnd)
    	ON_WM_LBUTTONDOWN()
    	ON_WM_PAINT()
    END_MESSAGE_MAP()
    
    CMyFrame::CMyFrame()
    {
    	Create(NULL,"MYAPP Application");
    }
    void CMyFrame::OnLButtonDown(UINT nFlags,CPoint point)
    {
    	TRACE("Entering MyApp - %lx,%d,%d\n",(long)nFlags,point.x,point.y);
    }
    void CMyFrame::OnPaint()
    {
    	CPaintDC dc(this);
    	dc.TextOutA(0,0,"Hello,world");
    }

    项目-》属性-》配置属性-》常规-》项目默认值-》MFC的使用-》在共享 DLL 中使用 MFC
    同样在配置属性中-》连接器-》高级-》入口点-》WinMainCRTStartup

    然后项目可正常运行

    下面挑一部分内容解释一下这个程序

    程序运行先构造一个CWinApp派生出来的类的对象(MFC框架决定的)
    就是这个对象:CMyApp theApp;

    MFC内部有一个WinMain函数
    这个函数是程序的入口点,函数执行过程中发现了CMyApp 的对象,即执行它的InitInstance函数
    此函数负责主窗口的构造和显示工作

    我们可以看到在InitInstance程序中创建了一个继承自CFrameWnd的CMyFrame类
    这就是代表窗口的类

    OnLButtonDown是鼠标左键按下的事件
    此处事件做的工作是在调试窗口输出鼠标的坐标
    OnPaint是窗口的重绘事件

    就解释到这里

  • 相关阅读:
    qt自定义的串口类判断断开
    ubuntu16.04永久修改有线接口名称(enp0s3->eth0)
    记录一下读过的书
    Qt 主界面卡死
    Mysql5.7及版本以上导入sql提示Incorrect date value: '0000-00-00' for column
    webpack打包css
    ant-design-vue中的a-directory-tree更换图标
    解决php-fpm占用内存过高问题
    centos,解压源代码安装,没有configure文件
    OSS存储上遇到The difference between the request time and the current time is too large
  • 原文地址:https://www.cnblogs.com/liulun/p/1567320.html
Copyright © 2020-2023  润新知