我有一个相当大的应用程序,它显示了许多不同的 MFC CDialog 派生对话框窗口。所有的对话框都显示在一个与此类似的中心功能中:
void ShowDialog(CDialog& dlg)
{
dlg.DoModal();
}
现在我需要在每个对话框的 OnInitDialog 方法中调用一个函数。它在技术上不需要在 OnInitDialog 中,但最好在对话框可见之前。
蛮力方法是遍历代码并找到每个最后一个对话框并将函数调用添加到 OnInitDialog 方法(如果有,如果没有,添加一个)。但似乎必须有一种更优雅的方式......
请注意,dlg 实际上不是 CDialog,而是从它派生的东西。
有什么想法、技巧或技巧吗?我不是在修补消息映射,但希望找到更清洁/更安全的东西。