码迷,mamicode.com
首页 > 编程语言 > 详细

VC++6.0MFC运行的简单流程

时间:2016-03-03 12:50:20      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

背景:

  由于下位机做的一些东西,总是需要通过上位机来验证,以及为了直观给客户展示下位机的功能,所以时常需要编写一些简单的APP。今天就以VC++6.0为例,简单的记录下该如何快速的创建一个APP。

正文:

  首先,本次工程文件名为“GPIOTest”,按照MFC向导一路往下,使用Dialog base窗口,结果会生成三个分类文件夹“Source files”、“Head files”、“Resource files”。具体存放什么就不用说了。

  其中会生成三个“.cpp”文件,“GPIOTest.cpp”、“GPIOTestDlg.cpp”、“StdAfx.cpp”

  运行顺序是:

  最开始在“GPIOTest.cpp”中:CGPIOTestApp::CGPIOTestApp() --> CGPIOTestApp::InitInstance() -->

  接着进入到“GPIOTestDlg.cpp”文件中的函数:

  CGPIOTestAppDlg::CGPIOTestAppDlg(CWnd* pParent /*=NULL*/): CDialog(CGPIOTestAppDlg::IDD, pParent) --> CGPIOTestAppDlg::DoDataExchange(CDataExchange* pDX) --> ::OnInitDialog()。

  之后即可以在OnInitDialog()函数内添加自己的代码了。一般都是对界面的一些控件初始化,由于现在还未使用到类似QT的信号槽之类的功能,所以暂时不做记录。

  以下的函数,即在APP运行中的调用情况:

  CGPIOTestAppDlg::OnPaint(),顾名思义,即当窗口有变化时会调用该函数,譬如放大缩小,移动等等;

  CGPIOTestAppDlg::::OnSysCommand(UINT nID, LPARAM lParam),该函数一般在用户使用鼠标点击菜单栏时会使用。

  CGPIOTestApp::InitInstance(),这个函数当你点击“X”按钮时,会被调用。可以在此处做一些善后处理。譬如关闭USB,关闭IO驱动等等。对于InitInstance()这个函数有必要说明下,代码如下:

BOOL CSBC7111GPIO_APPApp::InitInstance()
{
    AfxEnableControlContainer();
    // Standard initialization
    // If you are not using these features and wish to reduce the size
    //  of your final executable, you should remove from the following
    //  the specific initialization routines you do not need.

#ifdef _AFXDLL
    Enable3dControls();            // Call this when using MFC in a shared DLL
#else
    Enable3dControlsStatic();    // Call this when linking to MFC statically
#endif

/* 第一次执行这个函数的时候并没有运行到这里
 * 点击了“X”按钮才会继续运行
 */
    CSBC7111GPIO_APPDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK) {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with OK
    }
    else if (nResponse == IDCANCEL) {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with Cancel
    }
    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application‘s message pump.
    return FALSE;
}

 

记录地点:深圳WZ

记录时间:2016年3月3日

  

VC++6.0MFC运行的简单流程

标签:

原文地址:http://www.cnblogs.com/ChYQ/p/5238080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!