C++怎么实现在循环中按键盘暂停?

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:11:53
类似于bioskey的功能,在windows下实现。

具体问题就是我有一个自动运行的循环,想在停止自动运行,停止之后可以执行其他操作。所以考虑用按键盘上任意键跳出自动运行,问题是找不到合适的函数可以随时检验我是否按键。

用线程 给你个参考程序吧~!

#include<windows.h>
#include<iostream.h>
#include<conio.h>
DWORD WINAPI GetChar(LPVOID lpParameter);//thread data
char c=-1;
DWORD WINAPI GetChar(LPVOID lpParameter)
{
while(1)
{
c=getch();
}
}
void main()
{

HANDLE thread;
//创建线程

thread=CreateThread(NULL,0,GetChar,NULL,0,NULL);

do
{
cout<<"abc"<<endl;
Sleep(1000);
}
while(c!='N');
}

你可以自己改一下,监控的键值。

强势围观

不知道你是用什么写的
Win32程序的话只要添加一个WM_KEYDOWN的消息响应函数就好了。
控制台程序的话就开线程自己检测吧

如果这两个还不能满足要求,就只有用钩子函数了。自己网上搜一下,资料挺多,挺好用的。

给你提供一个思路(我的经验保证):

利用windows的消息处理机制,在程序的pretranslatemessage里面加入自己的处理流程。

给你找了几篇pretranslatemessag的文章
c语言如何在循环中实现continue 在VB中怎么实现循环播放List1中文件 如果在C中实现读取键盘输入 但是不暂停程序等待输入 请问在C语言中如何实现带进位标志位的循环左移? c语言 如何在死循环中实现对键盘输入的实时相应 VB如何在For循环中实现像以C语言中的Continue的功能? 在VB中如何实现程序的暂停?? FC忍者龙剑传3在游戏中暂停,然后按住上和暂停键,就会加血加人,人可以加8个,我用模拟器怎么实现不了啊? vb6.0中结束本次循环怎么实现??急!! 快速傅立叶变换在c中怎么实现?