在 OnCreateClient 之前将参数传递给 MFC 视图

发布于 2024-11-14 06:23:23 字数 131 浏览 2 评论 0原文

我有一个基于文档/视图架构的 MFC MDI 应用程序。问题是我想在调用 OnCreateClient 之前将一些参数从主框架传递给 View 类。我不确定如何做到这一点,因为文档/视图架构中的大部分内容都是在幕后完成的。

I have an MFC MDI app based on Doc/View Architecture. The problem is that I want to pass some parameters to the View class from the main frame "before" OnCreateClient is called. I am not sure how I can do that as most of the stuff in the doc/ view architecture is done under the hood.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

携君以终年 2024-11-21 06:23:23

模糊的问题只能得到模糊的答案。请澄清你的参数的作用。它们是特定于视图的吗?特定于文档?用户不可见?

如果您的问题是您有多个视图类,它们都使用共享数据结构,则可以将共享数据结构设置为在 CWinApp 派生类中初始化的全局变量。或者您可以(乘法)从(CView 和)管理共享数据结构的父类派生它们。

您可以从 Windows 注册表中读取您的参数。您可能想要这样做来保存窗口的大小、样式等。

不过,我不明白 OnCreateClient 与其中任何一个有什么关系。如果 CView::GetDocument() 返回 NULL,那么您的 CView 派生类不应该尝试绘制任何内容。

Vague question can only be met with vague answers. Please clarify what your parameters do. Are they view-specific? Document-specific? Not visible to the user?

If your problem is that you have multiple view classes which all use a shared data structure, you could use make the shared data structure a global variable which you initialize in your CWinApp-derived class. Or you could (multiply-)derive them from (both CView and) a parent class that manages the shared data structure.

You could read your parameters from the Windows registry. You might want to do this to save the sizes of windows, their styles, etc.

I don't see what OnCreateClient has to do with any of it, though. If CView::GetDocument() returns NULL then your CView-derived class shouldn't be trying to draw anything.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文