如何在MFC中写猜数字游戏,基于对话框的,步骤和代码,我只有这么多悬赏财富了,麻烦大神们,谢谢啦! 5
如何在MFC中写猜数字游戏,基于对话框的,步骤和代码,我只有这么多悬赏财富了,麻烦大神们,谢谢啦!用VC2010mfc写猜数游戏,求详细步骤和代码,谢谢啦...
如何在MFC中写猜数字游戏,基于对话框的,步骤和代码,我只有这么多悬赏财富了,麻烦大神们,谢谢啦!用VC2010 mfc 写猜数游戏,求详细步骤和代码,谢谢啦
展开
1个回答
2016-06-26
展开全部
MFC中开线程确实是个麻烦的问题,最大的问题在于开出来的线程函数不能直接使用MFC的一些机制,比如一个基于对话框工程,dlgcpp中写了一个线程函数,那么这个函数不能使用当前dlg类的所有成员,函数,所以直接调用控件变量是不行的,另外获取指针的方法也不行,只有在MFC类的成员函数中才能使用GetDlgItem(IDC_EDIT1),在其他函数中只能使用HWNDGetDlgItem(HWNDhDlg,intnIDDlgItem),使用后GetDlgItem(NULL,IDC_EDIT1)->只弹出一个unused当然法还是有的,思路是先全局定义一些变量,在工作者线程中去不断改变变量的值,把变量值反馈给对话框的任务交给OnTimer(),因为你的要求是自动刷新,那么也就是每隔一定时间刷新,那么OnTimer()就必不可少了。我给你个例子,要写的代码非常少就不发工程了,步骤如下建一个基于对话框工程,添加一个按钮,一个editbox,editbox绑定一个control变量c_edit然后在oninitdialog中加intiInstallResult;iInstallResult=SetTimer(1,1,NULL);同样是这个cpp文件中的开头加intnum=0;(全局)再在全局位置添加线程函数UINTfun(LPVOIDpParam){while(1){++num;if(num>=1000)num=0;}return0;}为按钮添加单击事件,加入代码AfxBeginThread(fun,NULL);最后为对话框添加OnTimer事件,代码如下CStrings;s.Format(_T("%d"),num);c_edit.SetWindowTextW(s);CDialog::OnTimer(nIDEvent);这个程序运行后OnTimer就已经启动,会不断把num值写入editbox,点击按钮后,fun线程启动,不断累加num,直到1000时归零,也就是editbox不断在0-1000之间滚动其实想想工作者线程中也并不需要MFC机制,能处理一些数据就可以了,标准cc++的库还是可以正常使用的,当然至于不能使用MFC的机制估计很有可能是我没发现用法,比如获取指针那里虽然只弹出一个unused,但是毕竟有这个函数有它的作用的,只不过我不知道用法而已,另外发送消息机制我是实在不会,也不知道能不能正常使用,不过不出意外估计也是不能直接拿来用的,不像mfc那么方便这是开线程的一种思路,我也不知道一般软件开发这种情况是用的什么技术,至于怎么在线程中使用MFC机制,就看你有没有这个兴趣往那个方向去研究了
追问
唉,我的水平实在很低,方便截图发一下做的步骤吗,真的很感谢,就是我们下周就要交作业了😭唉唉😔
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询