因为一个项目中需要开辟一个工作线程进行运算,但是在这个线程中我需要在弹出一个非模态窗口
一开始我是直接在子线程中Creat一个窗口出来的,结果也是可行的。但是今天早上发现不行了,creat这一步执行的时候就会报错。然后我找了一大圈资料,有人说子线程中不能创建(事实证明这是错的),要用sendmessage去传递消息出来,在主线程中创建。然后又差了一堆博客,有两个写得不错,虽然内容一模一样:
https://www.cnblogs.com/ahuo/archive/2013/01/28/2879406.html
https://blog.csdn.net/software_520/article/details/1802699?locationNum=1
我用的是VS2013,这两可能用的是VC++6.0,有个地方会有问题。
afx_msg void OnCreateDlg(WPARAM,LPARAM);//消息函数声明
afx_msg void OnDeleteDlg(WPARAM,LPARAM);//这里void VS2013有错误,需要改成LRESULT
正当我满心欢喜准备实现一下,实现到一半的时候,发现原来要弹出的Dialog在资源视图里面找不到了。然后我看了下,对应类和.h和.cpp都在。
所以,最后我是新建了对话框,然后在添加了类,就解决了。不过现在感觉还是通过消息传递更加合理!