鱼老大需要让两子程序带参数运行,于是仔细找找了,原来MFC中自带有一个成员变量m_lpCmdLine保存有参数。以下是自己学习的心得,其中包含MFC源码介绍及DEMO:
1、该参数在MFC源码中的位置如下,打开AFXWIN.H,可以找到:
- class CWinApp : public CWinThread
- {
- DECLARE_DYNAMIC(CWinApp)
- public:
-
-
- CWinApp(LPCTSTR lpszAppName = NULL);
-
-
-
- HINSTANCE m_hInstance;
- HINSTANCE m_hPrevInstance;
- LPTSTR m_lpCmdLine;
- int m_nCmdShow;
-
-
- LPCTSTR m_pszAppName;
-
- LPCTSTR m_pszRegistryKey;
- CDocManager* m_pDocManager;
-
-
- BOOL m_bHelpMode;
-
- ......
- }
2、新建一个MFC对话框程序,其中下面两个函数中添加的源代码如下:
- BOOL CB1App::InitInstance()
- {
- AfxEnableControlContainer();
-
-
-
-
-
-
- #ifdef _AFXDLL
- Enable3dControls();
- #else
- Enable3dControlsStatic();
- #endif
-
- if((m_lpCmdLine[0] == _T('/0')) || (lstrcmp(m_lpCmdLine, _T("b1")) != 0))
- {
- m_bCmdRet=TRUE;
- }
- else
- m_bCmdRet=FALSE;
-
- ......
- }
-
-
- BOOL CB1Dlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
-
-
- if(m_bCmdRet)
- {
-
- EndDialog(0);
- }
-
-
-
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
-
- ......
- }
3、程序运行截图:
4、总结,再次深入了解MFC这个框架部分结构。(PS:有人说MFC已经过时了,有人说MFC是一坨屎,,,,,,当然不同的领域、不同的需求当然说法也是人云亦云了,正如“小马过河”的典故,自己脚下的路才是真实!)
5、VC源码及DEMO下载地址:
鱼老大需要让两子程序带参数运行,于是仔细找找了,原来MFC中自带有一个成员变量m_lpCmdLine保存有参数。以下是自己学习的心得,其中包含MFC源码介绍及DEMO:
1、该参数在MFC源码中的位置如下,打开AFXWIN.H,可以找到:
- class CWinApp : public CWinThread
- {
- DECLARE_DYNAMIC(CWinApp)
- public:
-
-
- CWinApp(LPCTSTR lpszAppName = NULL);
-
-
-
- HINSTANCE m_hInstance;
- HINSTANCE m_hPrevInstance;
- LPTSTR m_lpCmdLine;
- int m_nCmdShow;
-
-
- LPCTSTR m_pszAppName;
-
- LPCTSTR m_pszRegistryKey;
- CDocManager* m_pDocManager;
-
-
- BOOL m_bHelpMode;
-
- ......
- }
2、新建一个MFC对话框程序,其中下面两个函数中添加的源代码如下:
- BOOL CB1App::InitInstance()
- {
- AfxEnableControlContainer();
-
-
-
-
-
-
- #ifdef _AFXDLL
- Enable3dControls();
- #else
- Enable3dControlsStatic();
- #endif
-
- if((m_lpCmdLine[0] == _T('/0')) || (lstrcmp(m_lpCmdLine, _T("b1")) != 0))
- {
- m_bCmdRet=TRUE;
- }
- else
- m_bCmdRet=FALSE;
-
- ......
- }
-
-
- BOOL CB1Dlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
-
-
- if(m_bCmdRet)
- {
-
- EndDialog(0);
- }
-
-
-
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
-
- ......
- }
3、程序运行截图:
4、总结,再次深入了解MFC这个框架部分结构。(PS:有人说MFC已经过时了,有人说MFC是一坨屎,,,,,,当然不同的领域、不同的需求当然说法也是人云亦云了,正如“小马过河”的典故,自己脚下的路才是真实!)
5、VC源码及DEMO下载地址:
http://download.csdn.net/source/1536508
http://blog.csdn.net/wangningyu/article/details/4399039
转自: http://download.csdn.net/source/1536508
鱼老大需要让两子程序带参数运行,于是仔细找找了,原来MFC中自带有一个成员变量m_lpCmdLine保存有参数。以下是自己学习的心得,其中包含MFC源码介绍及DEMO:
1、该参数在MFC源码中的位置如下,打开AFXWIN.H,可以找到:
- class CWinApp : public CWinThread
- {
- DECLARE_DYNAMIC(CWinApp)
- public:
-
-
- CWinApp(LPCTSTR lpszAppName = NULL);
-
-
-
- HINSTANCE m_hInstance;
- HINSTANCE m_hPrevInstance;
- LPTSTR m_lpCmdLine;
- int m_nCmdShow;
-
-
- LPCTSTR m_pszAppName;
-
- LPCTSTR m_pszRegistryKey;
- CDocManager* m_pDocManager;
-
-
- BOOL m_bHelpMode;
-
- ......
- }
2、新建一个MFC对话框程序,其中下面两个函数中添加的源代码如下:
- BOOL CB1App::InitInstance()
- {
- AfxEnableControlContainer();
-
-
-
-
-
-
- #ifdef _AFXDLL
- Enable3dControls();
- #else
- Enable3dControlsStatic();
- #endif
-
- if((m_lpCmdLine[0] == _T('/0')) || (lstrcmp(m_lpCmdLine, _T("b1")) != 0))
- {
- m_bCmdRet=TRUE;
- }
- else
- m_bCmdRet=FALSE;
-
- ......
- }
-
-
- BOOL CB1Dlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
-
-
- if(m_bCmdRet)
- {
-
- EndDialog(0);
- }
-
-
-
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
-
- ......
- }
3、程序运行截图:
4、总结,再次深入了解MFC这个框架部分结构。(PS:有人说MFC已经过时了,有人说MFC是一坨屎,,,,,,当然不同的领域、不同的需求当然说法也是人云亦云了,正如“小马过河”的典故,自己脚下的路才是真实!)
5、VC源码及DEMO下载地址:
http://download.csdn.net/source/1536508