vcvc 6.0环境境下,怎么实现按esc跳出当前循环?

窗体头文件中加入:
1 protected:
virtual BOOL PreTranslateMessage(MSG* pMsg);
// PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的
virtual void OnOK();
在CPP中加入:
1 BOOL CColorDlgDlg::PreTranslateMessage(MSG* pMsg)
//屏蔽ESC关闭窗体/
if(pMsg-&message==WM_KEYDOWN && pMsg-&wParam==VK_ESCAPE ) return TRUE;
//屏蔽回车关闭窗体,但会导致回车在窗体上失效.
//if(pMsg-&message==WM_KEYDOWN && pMsg-&wParam==VK_RETURN && pMsg-&wParam) return TRUE;
return CDialog::PreTranslateMessage(pMsg);
10 void CColorDlgDlg::OnOK()
//CDialogEx::OnOK();
窗体头文件中加入:
virtual void OnOK();
virtual void OnCancel();
afx_msg void OnClose(); //响应关闭事件!
在CPP中加入:
void CFirstFZDlg::OnOK()
void CFirstFZDlg::OnCancel()
void CFirstFZDlg::OnClose()
在此添加消息处理程序代码和/或调用默认值
CDialogEx::OnCancel();
//CDialogEx::OnClose();
MSG 结构体定义如下:typedef struct tagMSG {
// 窗口句柄
// 消息附加信息,根据消息而定
// 消息附加信息,根据消息而定
// 消息发送时间
// 消息发送时指针的位置(屏幕坐标)} MSG;
阅读(...) 评论()控制台程序,如何实现按 ESC 键退出?
[问题点数:20分,结帖人u]
控制台程序,如何实现按 ESC 键退出?
[问题点数:20分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年2月 C/C++大版内专家分月排行榜第二2013年4月 C/C++大版内专家分月排行榜第二2013年3月 C/C++大版内专家分月排行榜第二2012年12月 C/C++大版内专家分月排行榜第二2012年11月 C/C++大版内专家分月排行榜第二2012年8月 C/C++大版内专家分月排行榜第二
2014年12月 C/C++大版内专家分月排行榜第三2014年5月 C/C++大版内专家分月排行榜第三2014年3月 C/C++大版内专家分月排行榜第三2013年12月 C/C++大版内专家分月排行榜第三2013年10月 C/C++大版内专家分月排行榜第三2013年9月 C/C++大版内专家分月排行榜第三2013年7月 C/C++大版内专家分月排行榜第三2013年5月 C/C++大版内专家分月排行榜第三2013年2月 C/C++大版内专家分月排行榜第三2013年1月 C/C++大版内专家分月排行榜第三2012年9月 C/C++大版内专家分月排行榜第三
2013年7月 C/C++大版内专家分月排行榜第一
2015年9月 C/C++大版内专家分月排行榜第二2013年6月 C/C++大版内专家分月排行榜第二
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
2013年3月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|您现在的位置:&>&&>&&>&
育龙网&WWW.CHINA-B.C0M&& 日&&来源:互联网
核心提示:
前几天在c#版中看到一个文章:“如何用c#实现,在while (true)循环中,按Esc键退出循环?" 那时候以为只能用hook来监视键盘,看了看后
前几天在c#版中看到一个文章:“如何用c#实现,在while (true)循环中,按Esc键退出循环?" 那时候以为只能用hook来监视键盘,看了看后面一些猩猩的回复,只怪自己c#太菜,都没有看明白:( 在c版看到又有人问这个问题,其中cyberHunK(→迈克老猫←) 用了_kbhit()来解决了这个问题,我又去查了查MSDN,才有点明白,终于知道了还有_kbhit()这样的函数(汗。。。)。觉得这个东西蛮有用的,就记下来,有错的地方还请各位指教!先抄一段MSDN对_kbhit()的解释:int _kbhit( void );Return Value_kbhit returns a nonzero value if a key has been pressed. Otherwise, it returns 0.RemarksThe _kbhit function checks the console for a recent keystroke. If the functionreturns a nonzero value, a keystroke is waiting in the buffer. The program can then call _getch or _getche to get the keystroke.所以在vc里面可以用下面这个程序来实现按ESC退出while循环#include#include//包含对 _kbhit()和_getch()声明int main(){bool flag =while(flag)if(_kbhit()
(unch = _getch())
0x1b )flag = false; //ESC的键盘扫描码是0x1breturn 0;} //vc6.0下编译运行通过呵呵,原来这么简单!基本的用法就是这样了,你可以在里面加些代码来实现复杂一些的功能。那类似这样的功能用c#该怎么实现呢?笨点儿的办法就是引用dll,在c#里面调用_kbhit()来实现。(因为_kbhit()是vc这个编译器特有的系统函数)下面这个程序中就用到了这种方法,用于判断在3秒中内是否有键按下。(vs2005下编译运行通过)using Susing System.Runtime.InteropSusing System.Tnamespace ConsoleApplication2{class Program{[DllImport("msvcrt.dll")]public static extern int _getch();[DllImport("msvcrt.dll")]public static extern int _kbhit();static void Main(string args){Console.WriteLine("Press Any Key to Continue");int counter = 0;while ((_kbhit()
counter < 30){Thread.Sleep(100);counter++;}if (counter < 30){Console.WriteLine("you pressed " + (char)_getch());}else{Console.WriteLine("You did not press anything using default after 3seconds");}}}}子曾经曰过:“举一隅,不以三隅反,则不复也”。c#其实不用上面那种方法也可以比较容易的实现这个功能。(google出来的)程序(程序不停的输出“循环中”,按a退出)using Snamespace ConsoleApplication2{class Program{static void Main(string args){bool a =ConsoleKeyInfo keyIwhile (!a){if (System.Console.KeyAvailable)//如果有键按下{keyInfo = System.Console.ReadKey(true);//读取if (keyInfo.KeyChar
0x1b)//判断a =}elseSystem.Console.WriteLine("循环中");}}}}
相关热词搜索:
-- 本站部分信息来源于互联网,不代表本站观点或立场,如有侵权,请来电告知,我们将及时处理后使用快捷导航没有帐号?
只需一步,快速开始
请完成以下验证码
请完成以下验证码
主题帖子荣誉
新鱼友, 积分 95, 距离下一级还需 5 积分
新鱼友, 积分 95, 距离下一级还需 5 积分
查看: 5106|回复: 6
& 累计签到:5 天连续签到:1 天
马上注册加入鱼C,享用更多服务吧^_^
才可以下载或查看,没有帐号?
自己写的python while循环程序,怎么在程序中设置按Esc键退出程序,求指教!!!谢谢
& 累计签到:1299 天连续签到:1 天
貌似可以吧?
& 累计签到:116 天连续签到:1 天
本帖最后由 lightninng 于
07:32 编辑
重写pressEvent方法,先重载本来的pressEvent,然后在pressEvent方法中加上下面的代码
& && &&&if event.key() == QtCore.Qt.Key_Escape:
& && && && &self.close()
复制代码
具体请看下面这个贴子的5.3节的内容
感谢楼主无私奉献!
& 累计签到:116 天连续签到:1 天
貌似可以吧?@lightninng
& 累计签到:1299 天连续签到:1 天
我都忘记了,记得写贪吃蛇的时候有用过~
& 累计签到:116 天连续签到:1 天
我都忘记了,记得写贪吃蛇的时候有用过~
鱼油帮咱们加深了记忆~~
& 累计签到:16 天连续签到:1 天
小甲鱼强烈推荐
新的视频新的面貌,希望大家喜欢 (≧&#8711;≦)&#65417;
- - - - - - - - - - - -
新课程,新体验!
移动客户端下载(未启用)
微信公众号
Powered by
Copyright &
&&& All Rights Reserved.vbs高手来 怎么实现按键退出循环_百度知道
vbs高手来 怎么实现按键退出循环
用VBS来执行一直输入一按键如:set ws=createobject(&wscript.shell&) do ws.sendkeys &{TAB}&wscript.sleep 5000 loop这样会一直不停的输入 怎么才能实现按一个键 就让他退出这个循环了? 比如按F5结束循环
我希望来个代码加点解释 谢谢各位大侠了
哪你能具体点嘛
比如说用WINDOWS自带的东西做个第3方控件
希望详细具体
我有更好的答案
注意,你当前使用的vbs,而不是vb.程序执行的事件在VBS中只有一个,那就是双击运行程序。而在vb中,程序执行是由许多丰富的事件来完成的,比如按键事件,鼠标移动事件。。等等。如果你要监视系统中的ESC键,那么你得向系统挂个键盘钩子才行,可是VBS不能怎么怎么做,除非你自己编写第三方控件来实现。总之,没有编写第三方控件的情况下不能实现这个操作的
采纳率:40%
你可以试试加上循环条件,然后按某个键恰好符合这个条件便退出循环.
换VB,用GetAsyncKeyState+结束进程的两个API就行了。
为您推荐:
其他类似问题
您可能关注的内容
vbs的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 cherry 6.0 esc没反应 的文章

 

随机推荐