练习内容:在主线程中生成四个子线程,每个线程里面都有一个死循环-----无限地产生随机数。把随机数写到相应的编辑控件内。部分代码与下:void CSelectNumDlg::OnStart()
{
// TODO: Add your control notification handler code here
for(int ii=0;ii<4;ii++)
{
m_pParam.nID=IDC_EDIT1+ii; AfxBeginThread(ThreadProc,&m_pParam);
}
}UINT ThreadProc(LPVOID pPar)
{
char str[2];
int i; PARAM* pParam=(PARAM*)pPar; srand(pParam->nID); while(true)
{
// ::WaitForSingleObject(g_End.m_hObject,0);
i=rand()%10;
wsprintf(str,"%d",i);
::SetDlgItemText(pParam->hWnd,pParam->nID,str);
::Sleep(100);
}
return 0;
}问题表现:按下IDC_START按钮后,在第一个编辑控件内无内容,第二和行三个编辑控件内只有一个数,第四个编辑控件内容是不断改变的随机数(正常)。(注:编辑控件的ID值是连续的)为什么头三个编辑控件内达不到正常的要求,请知情者点拨一下,最好是理论上的解释。谢谢!
{
// TODO: Add your control notification handler code here
for(int ii=0;ii<4;ii++)
{
m_pParam.nID=IDC_EDIT1+ii; AfxBeginThread(ThreadProc,&m_pParam);
}
}UINT ThreadProc(LPVOID pPar)
{
char str[2];
int i; PARAM* pParam=(PARAM*)pPar; srand(pParam->nID); while(true)
{
// ::WaitForSingleObject(g_End.m_hObject,0);
i=rand()%10;
wsprintf(str,"%d",i);
::SetDlgItemText(pParam->hWnd,pParam->nID,str);
::Sleep(100);
}
return 0;
}问题表现:按下IDC_START按钮后,在第一个编辑控件内无内容,第二和行三个编辑控件内只有一个数,第四个编辑控件内容是不断改变的随机数(正常)。(注:编辑控件的ID值是连续的)为什么头三个编辑控件内达不到正常的要求,请知情者点拨一下,最好是理论上的解释。谢谢!
解决方案 »
- 请问怎么用API函数求鼠标左右键的状态?
- 模拟器为什么收不到消息?
- 如何实现画图程序中画线功能
- ADO的 时间 备注 类型的转换
- 怎么样才能 不让别人用鼠标拖动 来修改窗口的大小
- !!!!*****安装程序中,怎样创建快捷方式?!********!!!!!!
- 建立了一个单文档的程序,单击一个按钮,如何再弹出另外一个视图类窗口(不是对话框).请教,急用
- 修改了StatusBar后,标准的命令提示不见了,怎么让他出来呢
- ××××××××老板要我做一个控件,有一个static和一个edit框 程序急着要,可是小弟从来没做过啊,怎么办~~~×××××××
- 哪位熟悉microsoft speech sdk的兄弟,用mfc帮我写一个简单的语音识别的程序,很记的,谢谢。
- (vcleaner马甲)喜获MVP,散分——3
- 有没有哈尔滨的用VC/C++做东西的朋友!希望能够共同探讨!
{
int* m_pId=new int;
*m_pId=IDC_EDIT1+ii; AfxBeginThread(ThreadProc,m_pId);
}然后将会看到你想要的情况.