⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbwindow.h

📁 可以在开发MFC时
💻 H
字号:

#ifndef _DBWINDOW_H_H_
#define _DBWINDOW_H_H_

#include <windows.h>
#include <iostream.h>
#include <stdio.h>
#include <WINDEF.H>
#include <TCHAR.H>
#include <stdarg.h>

#define DBWINDOW_BUFFER_WIDTH 150
#define DBWINDOW_BUFFER_HEIGHT 10000

//控制台输出时的文本颜色 WORD Attrs
#define WDS_T_RED    FOREGROUND_RED
#define WDS_T_GREEN  FOREGROUND_GREEN
#define WDS_T_BLUE  FOREGROUND_BLUE
//控制台输出时的文本背景颜色 WORD Attrs
#define WDS_BG_RED  BACKGROUND_RED
#define WDS_BG_GREEN BACKGROUND_GREEN
#define WDS_BG_BLUE  BACKGROUND_BLUE
//FOREGROUND_INTENSITY
//BACKGROUND_INTENSITY|FOREGROUND_INTENSITY

#ifdef _DEBUG

//设置控制台输出窗口标题
BOOL DBWindowTile(LPCTSTR tile);

//格式化文本输出
BOOL DBWindowWrite(LPCTSTR fmt,...);

//带颜色格式化文本输出
BOOL DBWindowWrite(WORD Attrs,LPCTSTR fmt,...);


#define MAX_BUF_LEN 4096

#define CONSOLE_TILE _T("This is a Debug Window!")

class ConsoleWindow  
{
public:
	ConsoleWindow()
	{
		m_hConsole=NULL;
		m_bCreate=FALSE;
		if(AllocConsole())
		{
			m_hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
			SetConsoleTitle(CONSOLE_TILE);
			SetConsoleMode(m_hConsole,ENABLE_PROCESSED_OUTPUT);
			m_bCreate=TRUE;
		}
		else
		{
			m_hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
			if(m_hConsole==INVALID_HANDLE_VALUE)
			m_hConsole=NULL;
		}
		if(m_hConsole)
		{
			CONSOLE_SCREEN_BUFFER_INFO csbiInfo; 
			if(GetConsoleScreenBufferInfo(m_hConsole, &csbiInfo))
			{
				m_bAttrs=TRUE;
				m_OldColorAttrs = csbiInfo.wAttributes; 
				//added by navy 20081215
				csbiInfo.dwSize.X = DBWINDOW_BUFFER_WIDTH;
				csbiInfo.dwSize.Y = DBWINDOW_BUFFER_HEIGHT;
				SetConsoleScreenBufferSize(m_hConsole,csbiInfo.dwSize);
				//SetConsoleTextAttribute(m_hConsole,WDS_BG_RED|WDS_BG_BLUE|WDS_BG_GREEN|WDS_T_BLUE);
				
				//added end
			}
			else
			{
				m_bAttrs=FALSE;
				m_OldColorAttrs = 0;
			}
		}
	};
	~ConsoleWindow()
	{
		if(m_bCreate)
		{
			FreeConsole();
		}
	};
	BOOL SetTile(LPCTSTR lpTile)
	{
		return SetConsoleTitle(lpTile);
	};
	BOOL WriteString(LPCTSTR lpString)
	{
		BOOL ret=FALSE;
		if(m_hConsole)
		{
			ret=WriteConsole(m_hConsole,lpString,_tcslen(lpString),NULL,NULL);
		}
		return ret;
	};
	BOOL WriteString(WORD Attrs,LPCTSTR lpString)
	{
		BOOL ret=FALSE;
		if(m_hConsole)
		{
			if(m_bAttrs)
			{
				SetConsoleTextAttribute(m_hConsole,Attrs);
			}
			ret=WriteConsole(m_hConsole,lpString,_tcslen(lpString),NULL,NULL);
			if(m_bAttrs)
			{
				SetConsoleTextAttribute(m_hConsole,m_OldColorAttrs);
			}
		}
		return ret; 
	};
private:
  HANDLE m_hConsole;
  BOOL   m_bCreate;
  BOOL   m_bAttrs;
  WORD   m_OldColorAttrs; 
};
#else

#define DBWindowTile
#define DBWindowWrite

#endif


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -