【发布时间】:2011-03-10 17:25:48
【问题描述】:
我有一个相当大的应用程序,它显示许多不同的 MFC CDialog 派生对话框窗口。所有的对话框都从一个与此类似的中心功能中显示出来:
void ShowDialog(CDialog& dlg)
{
dlg.DoModal();
}
现在我需要在每个对话框的 OnInitDialog 方法中调用一个函数。它在技术上不需要在 OnInitDialog 中,但最好在对话框可见之前。
蛮力方法是遍历代码并找到每个最后一个对话框并将函数调用添加到 OnInitDialog 方法(如果有,如果没有,则添加一个)。不过好像一定有更优雅的方式……
请注意,dlg 实际上不是 CDialog,而是从它派生的东西。
有什么想法、技巧或技巧吗?我不是在修补消息映射,但希望找到更清洁/更安全的东西。
【问题讨论】:
标签: windows user-interface mfc cdialog