一个简单的VC处理方式,初学者

cgh6697067 2006-07-04 06:11:56

在控制台下的程序是这样的:
void main()
{
sock.CreateNewThread(TRUE);//启动监听线程
while(1)
{
char ch;
ch = _getch(); //等待用户的输入,没有输入则一直在处理监听线程
ch = toupper( ch );
if(ch == 'E')//一旦用户按下E键,则退出
break;
}

printf("退出\n\n");
return nRetCode;
}

上面的运行都是正常的,现在要改成对话框模式,在一个按钮上写上面的代码:
void CTCPTestDlg::OnButton2()
{
sock.CreateNewThread(TRUE);//启动监听线程
就不知道怎么实现控制台上面的那种效果?就是要等待用户按下另一个STOP的按钮,否则就
一直在监听
我现在的情况是,如果不写一个象控制台一样的循环,程序就直接退出,如果把控制台上面
的原原本本复制下来,CPU变成100%,而且鼠标都动不了了
}
...全文
194 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙凤呈祥焱 2006-07-06
  • 打赏
  • 举报
回复
while(1)!!!!
CPU不占100%才怪啊.
cgh6697067 2006-07-06
  • 打赏
  • 举报
回复
还是没有答案,控制台程序改成对话框程序怎么会变成这样?
nuaawenlin 2006-07-05
  • 打赏
  • 举报
回复
使用多线程
cgh6697067 2006-07-05
  • 打赏
  • 举报
回复
求答案啊,问题应该是出在什么地方?
whswq 2006-07-04
  • 打赏
  • 举报
回复
我想做一个下载程序,http协议求请头一定要用IP吗?
"GET /1.swf HTTP/1.1\r\nHost:www.xxx.com\r\n\r\n"
为什么不行啊?有没有高的有好的办法啊?
whswq 2006-07-04
  • 打赏
  • 举报
回复
你可以在死循环中加入Sleep(1000)试试!
cgh6697067 2006-07-04
  • 打赏
  • 举报
回复
不行,我在对话框初始化中启动线程,一起就出异常错误
forover 2006-07-04
  • 打赏
  • 举报
回复
在其他地方启动线程,比如另外个按钮事件里
然后在CTCPTestDlg::OnButton2() 的事件里退出程序就好了,注意OnButton2按钮为退出按钮

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧