使用AfxBeginThread创建CWinThread继承类。我想这样时安全的,直接使用_begindthread或CreateThread在MFC中是线程不安全的,特别是处理窗口相关的功能。
解决方案 »
- Invoke DISPATCH_PROPERTYPUT 返回非选择性的参数的错误
- 水晶报表显示程序中字符串与显示view中波形问题
- 如何比较两个CString对象
- 求三点画圆弧算法--不能调用现成的画圆弧函数
- mfc项目中一个dll被载入后,如果不主动FreeLibrary ,会在什么时候自动释放?
- 关于快速浏览目录下的所有图片的问题的请教
- 求助:数据库程序中的打印问题。
- 怎么定位到內存泄漏的代碼行?
- 如何设置某个窗口显示颜色色深为16位,不改变系统色深的情况下。
- 在ActiveForm中(Delphi)添加事件时。。。??????
- 有谁用过netmeetingSDK?
- 给我的前一个帖子再加100分
线程之间传递.怎样解决呢?
1 你传的CCopyfDlg *pt应该是没错的,不过我还是建议你传递HWND窗口句柄
2 利用PostMessage(...)向主窗口发送自定义消息.
3 在主窗口处理自定义消息,调用UpdateData(FALSE);
CCopyfDlg *pt=CWnd::FromHandle(((CCopyfDlg*)pParam)->m_hWnd); \\pParam 为指向一个对话框类
pt->UpdateData(FALSE); \\此句有问题,不知为什么?
CCopyfDlg *pt=CWnd::FromHandle(((CCopyfDlg*)pParam)->m_hWnd); \\pParam 为指向一个对话框类
pt->UpdateData(FALSE); \\此句有问题,不知为什么?
如果UpdateData出现ASSERT,有可能是你在执行这条语句以前,主线程还没有调用DoModal引起的。
我觉得这些动作用PostMessage()比较好.
呵呵,愚人愚见!
而且这样也显得更合理呀,UpdateData(FALSE);理应在主线程做的,没有必要放到你的线程里。
Send a user defined message and do UpdateData in the message handler function.