gpt4 book ai didi

c++ - 从窗口类访问应用程序变量的正确/可接受的设计是什么?

转载 作者:可可西里 更新时间:2023-11-01 13:14:52 25 4
gpt4 key购买 nike

我的直接上下文是 Windows 平台,但是在为另一个 gui 主机处理 ui 时,我也可能会问同样的问题。我在相当简单的 c++ winapi 中工作,没有 ATL/MFC。我对使用全局变量不感兴趣,而是对使用“应用程序”数据执行“窗口”相关任务的更 oop 接受的做法感兴趣。

我考虑过为此实现 mvvw 或 mvc 样式模式,但在我继续之前,我想听听社区的一些意见,我认为来自无数有经验的开发人员和设计师。

我的应用程序类有 Window 成员。 Window 类是否应该使用 Application 引用来设计?或者有比这更好的方法吗?

最佳答案

Window 的 Win API 为您提供了一个 Set/GetProperty(),它允许您定义指向您想要的任何内容(即您自己的窗口对象)的指针。但是,根据经验,我知道这相当慢。

另一种可能性是使用映射,其中 Win API 窗口的指针用作键,值是您的窗口对象。这要快得多,但是如果您没有任何全局变量,您将该 map 放在哪里?

正如 Samuel 所建议的,单例允许您获得一个与全局对象几乎相同的对象。然后您可以使用 Win API 窗口指针作为键来获取您的窗口对象,它会返回您的对象。

这是将传入事件映射到窗口对象所必需的。其他一切都应该以相反的方式完成(正如您所期望的,仅在以与系统窗口类似的方式映射的窗口对象上调用函数。)

你为什么不使用 Qt?它已经在 C++ 中,您不必担心这些细节...

关于c++ - 从窗口类访问应用程序变量的正确/可接受的设计是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8905094/

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