首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
VC/MFC
进程/线程/DLL
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
线程中 Edit Box显示数字菜鸟问题,请指教!谢谢
[已结贴,结贴人:sunyangguan]
加为好友
发送私信
在线聊天
sunyangguan
等级:
可用分等级:
长工
总技术专家分:
0
总技术专家分排名:
311804
揭帖率:
80.00%
发表于:
2008-05-17 16:29:41
楼主
一个基于对话框的程序,我想在一线程中更新显示Edit Box 控件中的数字:
//线程中显示数字
void CJiance_xitongDlg::Onxianshishuzi()
{
// TODO: Add your command handler code here
CWinThread *ThreadReadData;
//进入在EditBox中显示数字的线程
ThreadReadData=AfxBeginThread(xianshi_Thread,this,THREAD_PRIORITY_NORMAL);
}
UINT xianshi_Thread(LPVOID pParam)
{
//获得对话框的句柄
CJiance_xitongDlg* pDlg = (CJiance_xitongDlg*)pParam;
pDlg->m_shuzi=10;
pDlg->UpdateData(FALSE);//显示测量值
return 0;
}
编译通过都没有错误,但只要一运行就报错的,显示对话框:Debug Assertion Failed!。。。。。。
请问是什么原因呢?我如何在线程当中对主对话框中的控件进行操作呢?谢谢
问题点数:
30
回复次数:
3
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cnzdgs
回贴亦是善举
等级:
可用分等级:
乞丐
总技术专家分:
105613
总技术专家分排名:
45
5
2
13
发表于:
2008-05-17 18:02:27
1
楼 得分:
10
线程中不允许UpdateData,你可以用SetWindowText。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
krispan86
krispan
等级:
可用分等级:
贫农
总技术专家分:
118
总技术专家分排名:
80933
发表于:
2008-05-17 20:00:19
2
楼 得分:
20
给你提供一个另外的办法:
首先在CJiance_xitongDlg类头文件添加一个全局变量
static HWND hDlg; //对话框窗口句柄
修改创建线程函数为:
ThreadReadData=AfxBeginThread(xianshi_Thread,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
CJiance_xitongDlg::OnInitDiolag()函数中加入:
hDlg=GetSafeHwnd();
//线程回调函数改为
UINT xianshi_Thread(LPVOID pParam)
{
shuzi=10;
CString str;
str.Format("%d",shuzi);
::SetDlgItemText(hDlg,IDC_SHUZI,str); //这个IDC_SHUZI需要修改的跟你的Edit Box的ID一致
return 0;
}
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ls443085074
等级:
可用分等级:
中农
总技术专家分:
436
总技术专家分排名:
35613
发表于:
2008-05-17 23:13:28
3
楼 得分:
0
1.2楼的都能解决,请结贴
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友