📄 subject_19952.htm
字号:
<p>
序号:19952 发表者:紫云 发表日期:2002-11-01 15:16:51
<br>主题:一个关于thread的菜鸟级问题
<br>内容:本人初学VC++,正在学习线程编程,遇到一些问题,向各位大侠请教<BR><BR>建立一个工作线程,不断刷新主线程窗体 StaticText,但报异常,<BR>应该是线程同步刷新问题,但不知该怎么写,请帮助<BR><BR>代码如下:<BR>//<BR>typedef struct {<BR> CWnd* fhWnd;//主窗体句柄<BR> int nShowCount; //显示的数字初始值<BR>}TTHREADPARAM, *LPTTHREADPARAM;<BR><BR>// Thread test<BR>UINT Watch(LPVOID lpParam)<BR>{<BR> int i=0;<BR> char szBuf[10];<BR> TTHREADPARAM *pTP = (TTHREADPARAM *)lpParam;<BR> for (i=0;i<10;i++)<BR> {<BR> memset(szBuf,0,sizeof(szBuf));<BR> //_itoa(pTP->nShowCount++,szBuf,10);<BR> //Static_SetText(pTP->fhWnd->m_hWnd, _TEXT("33"));<BR><BR> SetDlgItemInt(pTP->fhWnd, IDC_NCOUNT, <BR> ++pTP->nShowCount , FALSE);<BR> Sleep(1000);<BR> }<BR> <BR> return(0);<BR>}<BR><BR><BR>void CFileChangeView::OnStart() <BR>{<BR> // TODO: Add your control notification handler code here<BR> DlgOpenChange();<BR> <BR> m_bWatchClose = false;<BR> <BR> TTHREADPARAM tdp;<BR> tdp.fhWnd = GetDlgItem(IDC_NCOUNT);<BR> tdp.nShowCount = GetDlgItemInt(IDC_NCOUNT);<BR><BR>// SetDlgItemInt(IDC_NCOUNT, 100123 , FALSE);<BR> CWinThread * pThread = <BR> AfxBeginThread(Watch, &tdp);<BR><BR><BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:CDMA2000 回复日期:2002-11-01 15:33:40
<br>内容:SetDlgItemInt()的第一个参数应该是handle of dialog box<BR>但<BR> tdp.fhWnd = GetDlgItem(IDC_NCOUNT);<BR> tdp.nShowCount = GetDlgItemInt(IDC_NCOUNT);<BR>你将tdp.fhWnd 传递的是控件的指针啊<BR><BR>你的结构应该这样<BR>typedef struct {<BR> HWND fhWnd;//主窗体句柄<BR> int nShowCount; //显示的数字初始值<BR>}TTHREADPARAM, *LPTTHREADPARAM;<BR><BR>还有tdp.fhWnd = GetDlgItem(IDC_NCOUNT);<BR>应该改为tdp.fhWnd = GetSafeHwnd();<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-11-01 15:34:09
<br>内容:CWnd是不可以传进thread的,进去以后handle就自动变成NULL了<BR>2002-11-1 21:17:55
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -