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

Posted Ch_Y_Q

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++6.0MFC运行的简单流程相关的知识,希望对你有一定的参考价值。

背景:

  由于下位机做的一些东西,总是需要通过上位机来验证,以及为了直观给客户展示下位机的功能,所以时常需要编写一些简单的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运行的简单流程的主要内容,如果未能解决你的问题,请参考以下文章

利用Microsoft VC++6.0 的MFC 的绘图工具实现简单图形的绘制

VC中MFC从哪里开始运行,MFC怎么调试,很急呀

VC中MFC从哪里开始运行,MFC怎么调试

菜鸟请教:如何在C++6.0的环境下,新建或产生一个MFC文件?

实现 COM 接口 C++ / VC++ 6.0 / MFC

C++ MFC VC 6.0 到 VS2013 lStreamReturn = GetRichEditCtrl().StreamIn(SF_RTF, es);