最近一个项目中需要在DLL中封装一个对话框,exe在特定情况下可以显示该DLL的对话框!
在DLL单纯的用图1中的代码是没法成功显示该对话框的,在DoModal之前需要进行一个资源转换(如图2),让程序调用DLL模块中的资源,这样才能显示DLL的对话框资源;
图 1
图 2
AFX_MANAGE_STATE(AfxGetStaticModuleState())的作用:用于模块切换时的状态保护,
1.AfxGetStaticModuleState()指向当前模块状态;
2.当前函数调用结束后原模块的状态自动被恢复;
3.用于DLL中所调用MFC函数、类、资源时的模块状态切换;