控制台程序如何显示进度?
再窗口中显示进度可以用发消息的方式
控制台中可不可以采用类似发消息的方式
另外,就像Winrar控制台自解压缩的时候显示
processing... ...X%
X不断变化是怎么弄的?process
[解决办法]
char cr=(char)13;//回车但不换行
cout < < "Begin\n ";
for (int i=1;i <101;i++)
{
Sleep(100);
cout < <cr < < "Processing... ... " < <i < < "% ";
}
cout < < "\nEnd!\n ";
使用MFC控制台程序
[解决办法]
控制台窗口没有窗口,用不了sendmsg/postmsg,可以用sendthreadmsg/post/threadmsg。在控制台窗口里recvthreadmsg。
[解决办法]
COORD CConsole::GetPosition()
{
// 获取标准输出设备句柄
CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口信息
GetConsoleScreenBufferInfo(_hStd, &bInfo );
return bInfo.dwCursorPosition;
}
BOOL CConsole::SetPosition(COORD coord)
{
return SetConsoleCursorPosition(_hStd,coord);
}
BOOL CConsole::OutputString(int x,int y,CString& str)
{
COORD coord = {x,y};
return TRUE==WriteConsoleOutputCharacter
( _hStd, str, str.GetLength(), coord, 0 );
}
移动光标然后输出字符串,最会在把光标改回来就行了