今天朋友问我在DLL中创建对话框的问题,现象是对话框是创建了但没有显示出来,究其原因原来是在对话框创建前少了一句必须的宏调用:AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
从MSDN上我们可以看到默认情况下MFC是通过主程序资源句柄去获取资源模板(如:对话框),如果资源模板在动态库中则需要转换资源模板的状态,使主程序句柄能正确接收到该资源。这样对话框才能正确显示出来。
今天朋友问我在DLL中创建对话框的问题,现象是对话框是创建了但没有显示出来,究其原因原来是在对话框创建前少了一句必须的宏调用:AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
从MSDN上我们可以看到默认情况下MFC是通过主程序资源句柄去获取资源模板(如:对话框),如果资源模板在动态库中则需要转换资源模板的状态,使主程序句柄能正确接收到该资源。这样对话框才能正确显示出来。