您的位置:首页 > 其它

WIN32 程序中支持MFC的窗口

2017-07-10 18:32 190 查看
项目中需要封装一个dll,但是库里面需要窗口,对画框之类的界面,如果用win32的API取实现画出窗口来, 当然Ok了,但是你不觉得win32 画起来超级烦吗,如果你的win32API开发用的666,当然随便了。
如果不想画,则可以用MFC的东西了。
怎么用?
1、从创建工程说起:
首先应该创建一个win32的动态库工程或者控制台工程,看你需要了。但是需要注意点是:有一个选项需要勾选;



如果所示,勾选MFC的选项即可;
2、如何显示MFC窗口
win32中使用MFC窗口显示需要一个宏声明:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
就是这个宏了;
AFX_MANAGE_STATE(AfxGetStaticModuleState());一定是作为接口函数的第一条语句。
       其功能是在栈上(这意味着其作用域是局部的)创建一个AFX_MODULE_STATE类的实例,并将其指   针pModuleState返回。
       AFX_MODULE_STATE类利用其构造函数和析构函数进行存储模块状态现场及恢复现场的工作。
       该宏用于将pModuleState设置为当前的有效模块状态。当离开该宏的作用域时(也就离开了pModuleState所指栈上对象的作用域),先前的模块状态将由类AFX_MODULE_STATE的析构函数恢复。(即自动恢复)

缺省情况下MFC使用主应用程序的资源句柄来载入资源模板,而DLL中的资源模板是存在于DLL模板中,因此要使用这一语句切换到由AfxGetStaticModuleState返回的正确的模块状态,得到正确的句柄。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc win32 控制台