============Console如何处理键盘和鼠标事件以及。。。。====================

zhenyu362 2005-06-07 04:54:30
我想做一个控制台窗口大小为80x25,把最低下一行留出来做输入命令,其余的用作输出显示
因为CSDN的论坛不能贴图,我只能用文本描画一下
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
& &
& &
& &
2004-11-21 19:04 <DIR> . &
2004-11-21 19:04 <DIR> .. &
2004-11-21 18:33 <DIR> 「开始」菜单 &
2004-11-21 19:04 <DIR> My Documents &
2004-11-21 19:04 <DIR> Favorites &
2004-11-21 18:33 <DIR> 桌面 &
2005-04-04 16:26 5,283 Unit1.obj &
2005-04-04 16:26 393,216 Unit1.tds &
2005-05-26 20:06 0 sys.py &
2005-04-04 16:26 50,176 Unit1.exe &
& &
&---------------------------------------------------------------------------&
&>>>c CD CHDIR CMD CLS &
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

假如"&"表示边框,最低下一行就是用来输入命令的,如果我输入c 就让他在后面自动提示出所有
C开头的命令,继续输入“H”,则只提示 CHDIR, 若此时敲空格键,则自动输入CHDIR命令
用过TRW或者SI的朋友应该能明白我的意思,我不知道具体如何做,高手指点,任何答复都是受
欢迎的。
...全文
169 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenyu362 2005-06-08
  • 打赏
  • 举报
回复
再来一下
leechiyang 2005-06-08
  • 打赏
  • 举报
回复
---zhenyu362(阵雨) --
子窗口前端显示一些字符,而原来的继续在后台滚动刷新,要求不会抹掉子窗口的内容,就是二者互不干扰
如果是你自己想开发这么个程序,感觉你应该想到解决方案。
开辟2块内存。

你在内存中开辟2块文本区,互不干扰,显示的时候对二者进行重叠就可以了。
zhenyu362 2005-06-08
  • 打赏
  • 举报
回复
怎么沉这么快,论坛人气真旺阿
zhenyu362 2005-06-08
  • 打赏
  • 举报
回复
还是先听听有这方面开发经验的高手怎么说
zhenyu362 2005-06-08
  • 打赏
  • 举报
回复
子窗口前端显示一些字符,而原来的继续在后台滚动刷新,要求不会抹掉子窗口的内容,就是二者互不干扰
zhenyu362 2005-06-08
  • 打赏
  • 举报
回复
还不多就是这个意思,呵呵
horisly 2005-06-07
  • 打赏
  • 举报
回复
你是指在console中划出一个窗口来??
icansaymyabc 2005-06-07
  • 打赏
  • 举报
回复
首先,你要建立的是 console 应用程序,而不能建立 win32 应用程序。 console 应用程序的编程和DOS一样。

1 不知道如何及时高效的响应按键

用 getch() 函数可以获得按键。

2 不知道如何专门留出一行来用作输入,上面的其他行专门用作输出,二者互不干扰

你在内存中保留一个80*25的文本区,所有的屏幕改动都先写到内存里,然后把内存的内容整体复制到屏幕上去。
别担心速度,现在的电脑做起这种事来快得你无法想象。
Kudeet 2005-06-07
  • 打赏
  • 举报
回复
控制台窗口界面控制设计
http://www.donews.net/zwell/articles/69226.aspx
zhenyu362 2005-06-07
  • 打赏
  • 举报
回复
呵呵,明白很多了,不过还有一个比较困难的问题,如何在控制台窗口中再创建一个子窗口,而不是两个控制台窗口,用过TC的朋友都知道在TC中打开Help菜单就会弹出一个子窗口来显示帮助内容,
我这个要求比较特殊,就是子窗口在前端先后,控制台窗口在后台不停的滚动刷新内容而且不能影响到前端子窗口
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
& &
& &
& &
2004-11-21 19:04 <DIR> . &
2004-11-21 19:04 <DIR> .. &
2004-11-21 18:33 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &
2004-11-21 19:04 & & &
2004-11-21 19:04 & This is a ChildWindow & &
2004-11-21 18:33 & & &
2005-04-04 16:26 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &
2005-04-04 16:26 393,216 Unit1.tds &
2005-05-26 20:06 0 sys.py &
2005-04-04 16:26 50,176 Unit1.exe &
& &
&---------------------------------------------------------------------------&
&>>>c CD CHDIR CMD CLS &
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
zhenyu362 2005-06-07
  • 打赏
  • 举报
回复
我现在的难点是:
1 不知道如何及时高效的响应按键
2 不知道如何专门留出一行来用作输入,上面的其他行专门用作输出,二者互不干扰
就好像是在一个GUI的Window的最底下摆放一个Edit控件一样
horisly 2005-06-07
  • 打赏
  • 举报
回复
windows有一整套的console的API函数,可以去查看一下MSDN。

我为一个网友解决过的一个问题(相类似的):
http://community.csdn.net/Expert/topic/4024/4024817.xml?temp=.4571344
只要调用相关的API函数就可以解决问题了。
zhenyu362 2005-06-07
  • 打赏
  • 举报
回复
非常感谢大家,特别感谢laiyiling,那个链接的资料对我很有用 ^_^
zhenyu362 2005-06-07
  • 打赏
  • 举报
回复
假如此时屏幕已满,再调用printf的时候默认是先将屏幕内容往上滚动一行,然后将printf的内容输出到最底下一行,我现在是想他每次调用printf的时候不要再最底下一行输出,而是在倒数第二行输出

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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