CFrameWndEx :: AdjustDockingLayout()和CFrameWndEx :: RecalcLayout()有什么区别?

时间:2015-11-26 11:21:24

标签: visual-c++ mfc mfc-feature-pack

CFrameWndEx::AdjustDockingLayout()CFrameWndEx::RecalcLayout()之间有什么区别?

他们两人都做类似的工作,如文档所说:AdjustDockingLayout()RecalcLayout()

除此之外,Interface Elements doc表示

  

如果您有调整停靠布局,并且框架会将此调用重定向到停靠管理器,则可以调用 AdjustDockingLayout RecalcLayout

AdjustDockingLayout()RecalcLayout()执行相同的工作吗?

1 个答案:

答案 0 :(得分:1)

AdjustDockingLayoutRecalcLayout低一级。 RecalcLayout来电AdjustDockingLayout。但是AdjustDocinkgLayout还有一个用于延迟窗口定位(HDWP)的附加参数。

因此,当您在启动程序或进行模式切换时从注册表恢复窗口布局时,不会调用RecalcLayout。在这种情况下,AdjustDockingLayout被调用。

因此,无论何时您需要内部,我都会致电RecalcLayout

详细说明:RecalcLayout也为每个子窗口调用RecalcLayout,最后只为当前窗口调用AdjustDockingLayout