如何把win32控制台划分为两个独立的区域?

wudongxu 2009-08-22 09:28:20
要写一个程序是win32控制台的程序,想实现控制台的上方一直在接收命令,下方在打印一些数据.就是两个区域是相互独立的,而且上方的命令可以中止下方的运行.本人的想法是应该两个线程,但如何才能使它们在控制台上相互独立:一个在接收命令,一个在打印消息?
...全文
168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
van_lin 2009-08-24
  • 打赏
  • 举报
回复
楼上的程序很强大,, 很管用。
  • 打赏
  • 举报
回复
你看看这个程序的效果,完善一下就能达到你所需要的效果了
#include<Windows.h>
#include<iostream>
#include<string>
using namespace std;
COORD GetConsoleCursorPosition(HANDLE hHandle)
{
CONSOLE_SCREEN_BUFFER_INFO info={0};
GetConsoleScreenBufferInfo( hHandle , &info );
return info.dwCursorPosition;
}

int main()
{
HANDLE hOut = GetStdHandle( STD_OUTPUT_HANDLE );
HANDLE hIn = GetStdHandle( STD_INPUT_HANDLE );
cout<<"out_test"<<endl;
COORD OutCorrd = GetConsoleCursorPosition( hOut );
COORD InCorrd = { 0 , 10};
while( true ){
SetConsoleCursorPosition( hOut , InCorrd );
string str;
cin>>str;
InCorrd = GetConsoleCursorPosition( hOut );
if( !cin )
break;
SetConsoleCursorPosition( hOut , OutCorrd );
cout<<"out_test1\t"<<str<<endl;
OutCorrd = GetConsoleCursorPosition( hOut );
}
return 0;
}
过去的我 2009-08-24
  • 打赏
  • 举报
回复
没见过这样的程序啊
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wudongxu 的回复:]
引用 1 楼 akirya 的回复:
WriteConsoleOutput可以在指定位置输出
SetConsoleCursorPosition修改光标位置。



能不能说清楚点,我是想一个区域在读取命令,一个区域在写数据,它们之间互不影响.谢谢.
[/Quote]
不就是这样了函数么,你再一个区域写数据,WriteConsoleOutput,输出位置放到你输出的数据.
修改光标的时候你输入就在光标后面了.
wudongxu 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 akirya 的回复:]
WriteConsoleOutput可以在指定位置输出
SetConsoleCursorPosition修改光标位置。

[/Quote]

能不能说清楚点,我是想一个区域在读取命令,一个区域在写数据,它们之间互不影响.谢谢.
zgjxwl 2009-08-23
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
WriteConsoleOutput可以在指定位置输出
SetConsoleCursorPosition修改光标位置。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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