MFC如何将CString从另一个类获取到CRegSettings类

包括666

我有关于将“编辑文本”保存到注册的问题。我确实在主类中保存了要注册的文本数据,并且做了另一个调用CRegSettings的注册表类,因此每次我单击MyItem \ 0,MyItem \ 1之类的按钮时,此类都会进行枚举。

我的问题是我无法将CString文本输入此CRegSettings类,此类没有DoDataExchange,所以当我以某种方式将其转到错误“ CMySettingsItem :: DoDataExchange':在所有控制路径上递归”时,它就无法工作,我也无法得到从主类到此类的CString,有人知道怎么做吗?谢谢。

这是我的代码。

Main.cpp

// CNewConnectionDlg dialog

IMPLEMENT_DYNAMIC(CNewConnectionDlg, CDialog)



CNewConnectionDlg::CNewConnectionDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNewConnectionDlg::IDD, pParent)
    , m_csIp(_T("localhost"))
    , m_csPort(_T("22"))
    , m_csUsername(_T("Username"))
    , m_csPassword(_T("Password"))

{

}

class CMySettingsItem : public CRegSettings
{
public:
    DWORD Id;

    CString m_Password;
    CString Password;


    BEGIN_REG_MAP(CMySettingsItem)
        REG_ITEM(Id, 1)
        REG_ITEM(Password, m_Password)
    END_REG_MAP()
protected:
    virtual void DoDataExchange(CDataExchange* pDX);

};

// Sample application configuration
class CMySettings : public CRegSettings
{
public:

    DWORD RootId; // DWORD option
    CString RootName; // String option
    std::string FullName;

    // list of options (CMySettingsItem)
    CSimpleArray<CMySettingsItem> Profile;  // ATL CSimpleArray
    //std::list<CMySettingsItem> ProfileList;   // STL list

    CMySettingsItem SubItem; // Subitem test

    BEGIN_REG_MAP(CMySettings)
        REG_ITEM(RootId, 1)
        REG_ITEM(RootName, "Profile")
        REG_ITEM_STL(FullName, "Profile")
        REG_ITEM_SIMPLE_ARRAY(Profile)
        //REG_ITEM_LIST(ProfileList)
    END_REG_MAP()
};

void CMySettingsItem::DoDataExchange(CDataExchange* pDX)
{
    CMySettingsItem::DoDataExchange(pDX);

    DDX_Text(pDX, IDC_PASSWORD, m_Password);


}

CNewConnectionDlg::~CNewConnectionDlg()
{   
    AfxGetApp()->WriteProfileString("Settings", "UserName", m_csUsername);
    AfxGetApp()->WriteProfileString("Settings", "IP",       m_csIp);
    AfxGetApp()->WriteProfileString("Settings", "Port",     m_csPort);
    AfxGetApp()->WriteProfileString("Settings", "Password", m_csPassword);




    CMySettings configuration(HKEY_CURRENT_USER, "Software\\MyItem\\Item");

    // Load configuration
    if(configuration.Load() != ERROR_SUCCESS)
        printf("failed to load\n");

    // Use loaded configuration
    configuration.RootId++;

    CMySettingsItem item;
    item.Id = configuration.RootId;

    configuration.Profile.Add(item); // CSimpleArray
    //configuration.ProfileList.push_back(item); // list

    // Save new configuration
    if(configuration.Save() != ERROR_SUCCESS)
        printf("failed to save\n");



}


void CNewConnectionDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);

    DDX_Text(pDX, IDC_IP, m_csIp);
    DDV_MaxChars(pDX, m_csIp, 255);

    DDX_Text(pDX, IDC_PORT, m_csPort);
    DDV_MaxChars(pDX, m_csPort, 6);

    DDX_Text(pDX, IDC_USERNAME, m_csUsername);
    DDV_MaxChars(pDX, m_csUsername, 20);

    DDX_Text(pDX, IDC_PASSWORD, m_csPassword);
    DDV_MaxChars(pDX, m_csPassword, 255);

}


BEGIN_MESSAGE_MAP(CNewConnectionDlg, CDialog)
    ON_EN_CHANGE(IDC_PASSWORD, &CNewConnectionDlg::OnEnChangePassword)
    ON_EN_CHANGE(IDC_USERNAME, &CNewConnectionDlg::OnEnChangeUsername)
END_MESSAGE_MAP()

void CNewConnectionDlg::OnEnChangePassword()
{

}


void CNewConnectionDlg::OnEnChangeUsername()
{

}

和标题

主站

#pragma once
#include "InnerDlg.h"
#include <afxtempl.h>

class CNewConnectionDlg : public CDialog
{
    DECLARE_DYNAMIC(CNewConnectionDlg)

public:
    CNewConnectionDlg(CWnd* pParent = NULL);   // standard constructor
    virtual ~CNewConnectionDlg();

     CNewConnectionDlg(const CString sSection, const CString sArrayName);

    // Dialog Data
    enum { IDD = IDD_NEWCONNECTION };


public:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

protected:
    DECLARE_MESSAGE_MAP()
public:

    // The server ip or name
    CString m_csIp;

    // The negotiating port on the server
    CString m_csPort;

    // Username for the server
    CString m_csUsername;

    // Password for the server
    CString m_csPassword;


    afx_msg void OnEnChangePassword();
    afx_msg void OnEnChangeUsername();

};
亡灵鱼

DoDataExchange仅适用于用户界面类,例如基于CDialog的类。它用于将屏幕上的用户界面元素与该对象的成员变量连接。因此,您的数据位于m_csIp,m_csPort,m_csUsername和m_csPassword成员中。您只需要将其分配给CMySettingsItem实例的相关成员即可

例如:

item.m_Password = m_csPassword;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MFC如何将CString从另一个类获取到CRegSettings类

来自分类Dev

如何将数据从BroadcastReceiver获取到另一个类BroadcastReceiver

来自分类Dev

使用按钮将TextField的值从一个类获取到另一个类

来自分类Dev

如何将一个类访问另一个C#类

来自分类Dev

如何将Text设置为另一个类或从另一个类找到findViewById?

来自分类Dev

如何将List <Map>的信息获取到Flutter中的另一个屏幕?

来自分类Dev

phpBB:如何将phpBB提要获取到父域中的另一个网页?

来自分类Dev

如何将代码从 GitHub 存储库获取到另一个域?

来自分类Dev

如何将一个值设置为一个类中的变量并从另一个类中获取该变量的值?

来自分类Dev

如何将一个类的实例方法与另一个实例化?

来自分类Dev

如何将变量从一个类传递到另一个?

来自分类Dev

如何将一个类的实例方法与另一个实例化?

来自分类Dev

Django,如何将模型类导入另一个模型类?

来自分类Dev

如何将数据从观察到的类传递到另一个类?

来自分类Dev

gmock:如何将模拟类的指针传递给另一个类?

来自分类Dev

如何将指向基类的指针保存到另一个类的字段?

来自分类Dev

如何将Book类的值打印到另一个Cart类?

来自分类Dev

python如何将一个类的实例变量转换为另一个类?

来自分类Dev

如何将一个类中的对象添加到另一个类中的List。

来自分类Dev

如何将GeoPosition从一个类传递到另一个类?

来自分类Dev

如何将一个类变量引用到另一个类进行操作?

来自分类Dev

面向对象设计 - 如何将一个类嵌套到另一个类中

来自分类Dev

如何将一个类的函数作为另一个类的另一个函数的参数传递

来自分类Dev

如何将Java类(从一个包中)继承到另一个类(在另一个包中)

来自分类Dev

如何从另一个类获取数组

来自分类Dev

如何访问并获取另一个类的属性?

来自分类Dev

如何从另一个类获取按钮的文本

来自分类Dev

如何从另一个类获取数组

来自分类Dev

如何从另一个类获取变量的值

Related 相关文章

  1. 1

    MFC如何将CString从另一个类获取到CRegSettings类

  2. 2

    如何将数据从BroadcastReceiver获取到另一个类BroadcastReceiver

  3. 3

    使用按钮将TextField的值从一个类获取到另一个类

  4. 4

    如何将一个类访问另一个C#类

  5. 5

    如何将Text设置为另一个类或从另一个类找到findViewById?

  6. 6

    如何将List <Map>的信息获取到Flutter中的另一个屏幕?

  7. 7

    phpBB:如何将phpBB提要获取到父域中的另一个网页?

  8. 8

    如何将代码从 GitHub 存储库获取到另一个域?

  9. 9

    如何将一个值设置为一个类中的变量并从另一个类中获取该变量的值?

  10. 10

    如何将一个类的实例方法与另一个实例化?

  11. 11

    如何将变量从一个类传递到另一个?

  12. 12

    如何将一个类的实例方法与另一个实例化?

  13. 13

    Django,如何将模型类导入另一个模型类?

  14. 14

    如何将数据从观察到的类传递到另一个类?

  15. 15

    gmock:如何将模拟类的指针传递给另一个类?

  16. 16

    如何将指向基类的指针保存到另一个类的字段?

  17. 17

    如何将Book类的值打印到另一个Cart类?

  18. 18

    python如何将一个类的实例变量转换为另一个类?

  19. 19

    如何将一个类中的对象添加到另一个类中的List。

  20. 20

    如何将GeoPosition从一个类传递到另一个类?

  21. 21

    如何将一个类变量引用到另一个类进行操作?

  22. 22

    面向对象设计 - 如何将一个类嵌套到另一个类中

  23. 23

    如何将一个类的函数作为另一个类的另一个函数的参数传递

  24. 24

    如何将Java类(从一个包中)继承到另一个类(在另一个包中)

  25. 25

    如何从另一个类获取数组

  26. 26

    如何访问并获取另一个类的属性?

  27. 27

    如何从另一个类获取按钮的文本

  28. 28

    如何从另一个类获取数组

  29. 29

    如何从另一个类获取变量的值

热门标签

归档