关于MFC中创建UI线程的问题.

yu505710025 2013-05-05 05:46:38
问题是这样,比如我现在有一个Win32的界面程序(非MFC),然后我想在这个Win32的界面上附上一个MFC的窗口,该窗口使用了扩展MFC,我试了好几种做法,都不是太满意。希望大神们给点意见。。。
我说下我的这几种做法,
第一:用多进程,这样是可以实现,但是非常繁琐。所以我放弃了。
第二:用多线程的形式,这样是做理想的,新开一个线程用来显示MFC界面,两个线程都有独立的消息队列,我通过在一个扩展MFC的DLL中来创建MFC的见面,然后创建一个线程来手动调用AfxWinMain 这样可以成功,跑起来也没问题,但是在关闭这个MFC窗口的时候会出现一个异常,导致该线程不能正常结束。
...全文
305 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-07-01
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
yu505710025 2013-05-06
  • 打赏
  • 举报
回复
还是没人么[/code]
菜牛 2013-05-06
  • 打赏
  • 举报
回复
太复杂,MFC主线程要有CWinApp去实现很多状态控制的功能。
yu505710025 2013-05-06
  • 打赏
  • 举报
回复
顶到大神出现.
yu505710025 2013-05-06
  • 打赏
  • 举报
回复
引用 7 楼 yu505710025 的回复:
还是没人么[/code]
如果不用多线程,就代表扩展MFC要与Win32公用一个消息队列,你确定这样能工作么?我的前提是Win32程序有自己的消息队列,不能更改它.
wumn29 2013-05-06
  • 打赏
  • 举报
回复
不应该用多线程, 直接调用dll的接口就行了 最好贴代码出来看看
yu505710025 2013-05-05
  • 打赏
  • 举报
回复
help me
yu505710025 2013-05-05
  • 打赏
  • 举报
回复
在用VS的向导创建MFC DLL的时候一共有三个选项,第一个是动态的规则DLL,第二个是静态的规则DLL,以上两种可以在MFC和非MFC程序中使用, 第三个就是扩展MFC DLL,该DLL只能在MFC程序中使用。我现在使用的就是第三种,而我又想将这种DLL用在非MFC程序中。首先说下,如果我是在使用规则DLL,也就是不使用扩展的MFC,使用VC6.0版本的MFC,嵌入到Win32的界面是没有问题的,一切可以正常,只不过是不能使用扩展MFC的内容,比如说VS2010的一些新特性(可停靠工具栏,等等)。 默认的mfc大概的启动过程是 从主线程的AfxWinMain函数中启动exe的实例。 而我现在模拟了这种操作然后手动调用AfxWinMain 可以跑但是不能正常退出,估计原因就是微软设计的时候,没有考虑我这种情况,而这也只是猜测,对PE结构不是非常熟悉,所以想请大神们帮帮忙
wwwhhb4002 2013-05-05
  • 打赏
  • 举报
回复
不懂,如果楼主能吧代码贴一下就好了
yu505710025 2013-05-05
  • 打赏
  • 举报
回复
再顶
yu505710025 2013-05-05
  • 打赏
  • 举报
回复
我顶
yu505710025 2013-05-05
  • 打赏
  • 举报
回复
怎么没人。。。求指点啊。。。其实我的目的很简单,就是想在一个拥有独立消息队列的Win32窗口上面附上一个扩展的MFC窗口而已。。。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧