【问题标题】:MFC: What is guaranteed to be called after CWnd::OnCreate()?MFC:在 CWnd::OnCreate() 之后保证调用什么?
【发布时间】:2020-02-16 10:49:49
【问题描述】:

由于WM_SHOWWINDOW (OnShowWindow) 不会总是根据 API 文档被调用,我在哪里处理需要 CSplitterWnd() 内的所有 CTreeView/CListView/etc.. 的启动项987654326@ 已填充?我不能在OnCreate() 做,因为OnInitialUpdate()CTreeView/CListView 在那之后。

TIA!!

【问题讨论】:

    标签: winapi mfc


    【解决方案1】:

    我最终添加了我自己的方法 CMainFrame::OnAfterCreate(),它在 CWinApp::InitInstance() 创建后在 CWinApp::InitInstance() 中调用。

    【讨论】:

    • 您使用了错误的工具。听起来您正在 CMainFrame 窗口内重新发明 Doc-View-Architecture。这不是设计工作的方式。请改用CView。它的c'tor有以下保证:“框架在创建新框架窗口或拆分窗口时调用构造函数。覆盖OnInitialUpdate成员函数以在附加文档后初始化视图。”
    • 我不能在 OnInitialUpdate 上完成,必须稍后完成(使用所有相关的 csplitterwnd。无论如何,我使用的方法效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2015-07-29
    • 2012-12-15
    • 2014-06-24
    相关资源
    最近更新 更多