gpt4 book ai didi

c++ - 寻求 DDX 的替代品

转载 作者:行者123 更新时间:2023-11-28 08:04:10 31 4
gpt4 key购买 nike

DDX 技术是为将资源与类成员链接起来而创建的(例如)。在我的解决方案中,我需要在不存在于类成员 CCtreeCtrl 的资源中的 myCCtreeCtrl(CCtreeCtrl 实例)之间建立连接。现在我在资源中有了 CTreeCtrl 和简单的 doDataExchange:

#define IDC_TREE_LAYER0                 2000   
#define IDC_TREE_LAYER1 2001
#define IDC_TREE_LAYER2 2002


// ============================================================================
void ForcesGUI::doDataExchange( int id0, int id1, int id2, CDataExchange* pDX )
// ============================================================================
{
DDX_Control(pDX, id0, m_tree[0].data);
DDX_Control(pDX, id1, m_tree[1].data);
DDX_Control(pDX, id2, m_tree[2].data);
}

但将来需要从资源中删除CCtreeCtrl并创建实例。

你会问我为什么需要从资源中删除?

答案是:在项目中我有 3 个 CCtreeCtrl,每个都在他自己的栏上。他们之间没有什么不同。这就是为什么我想使用 1 个带有 1 棵树的 bar 类而不是冗余。在我创建 3 个 bar 实例之后,这里出现了 DDX 问题,但在这里不起作用。

您有什么想法可以替换基本的 DDX 吗?可能是 WinAPI 或其他东西。无论如何感谢您的帮助。

最佳答案

如果控件不是从对话框资源自动生成的,则必须使用 Create 创建它方法。您需要在 OnInitDialog 或父窗口中的任何等效项中执行此操作。通过使用 Create 创建窗口,它将自动连接到您创建它的对象 - 不需要 DDX_Control。

关于c++ - 寻求 DDX 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10659626/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com