Parameters File to Store All Variables
背景:所以我创建了一个应用程序,它基本上是一个大型的首选项对话框,用户可以在其中配置多个页面,每个页面都有一系列不同的设置。这些设置以下拉列表和文本框的形式显示。我想把所有的变量存储到一个巨大的"parameters.h"文件中,这样我就可以从应用程序的任何地方访问它们。每个子页面都有自己的源文件和头文件。
不过,我的指针有问题。我不知道如何引用参数类。基本上,我的应用程序有两个主要组件:一个主对话框和一堆子页面。主对话框是根据用户在主对话框左侧的列表框中选择的页面显示和隐藏子页面的位置。
我现在只处理一个子页,并有以下内容,但是当我调试时,我会得到所有地方的
问题:那么,如何在每个子对话框中指向这个参数类,以便存储和使用所有这些变量?
saprefsdialog.cpp:包含子页的主对话框
1 2 3 4 5 6 7 | BOOL CSAPrefsDialog::OnInitDialog() { CDialog::OnInitDialog(); FSC_Main fscMain; fscMain.SetParametersPointer(&m_pParams); // [ ... ] } |
saprefsdialog.h:主对话框头文件
1 2 3 4 5 6 7 | #include"Parameters.h" public: CSAPrefsDialog(CWnd* pParent = NULL); // standard constructor ~CSAPrefsDialog(); Parameters m_pParams; |
号
fsc_main.h:子页标题文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include"Parameters.h" class FSC_Main : public CSAPrefsSubDlg { // Construction public: FSC_Main(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(FSC_Main) enum { IDD = IDD_FS_CONFIG_MAIN }; //}}AFX_DATA public: void SetParametersPointer(Parameters* pParameters) { m_Params = pParameters; } private: Parameters *m_Params; }; |
参数.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include"stdafx.h" #include"prefs.h" #pragma once class Parameters { public: Parameters(); // standard constructor public: ~Parameters(void); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support public: //***************************************************************************** // // FSC_Main.cpp Variables // //***************************************************************************** CString m_strVehiclesMainNumVehicles; CString m_strVehiclesMainMaxSensorCount; CString m_strVehiclesMainTaskProcessingInterval; CString m_strVehiclesMain // [ ... ] |
。
参数.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include"stdafx.h" #include"prefs.h" #include"pages.h" #include"Parameters.h" //***************************************************************************** // // Parameters::Parameters // //***************************************************************************** Parameters::Parameters(): m_strVehiclesMainNumVehicles("") , m_strVehiclesMainMaxSensorCount("") , m_strVehiclesMainTaskProcessingInterval("") // [ ... ] { } |
问题是,您在