(原创)在MFC对话框程序中添加控制台

2013/03/21 MFC

在基于MFC开发对话框程序时,很需要一个能像控制台打印一样的调试窗口,使用一个宏开关,在release时又可以关闭。

  1. 配置控制台:在DoModal执行之前配置控制台。
		BOOL CAudioRecordApp::InitInstance()
		{
			.
			.
			.
		#ifdef LOG_DEBUG
			AllocConsole();// 开辟控制台
			SetConsoleTitle(_T("测试窗口"));// 设置控制台窗口标题
			freopen("CONOUT$", "w", stdout);// 重定向输出
			freopen("CONIN$", "r+t", stdin);// 申请读

			TCHAR szBuf[100];
			GetConsoleTitle(szBuf, 100);//得到控制台标题
			HWND   hwnd = ::FindWindow(NULL, szBuf);//查找控制台 
			HMENU   hmenu = ::GetSystemMenu(hwnd, FALSE);//获取菜单
			::RemoveMenu(hmenu, SC_CLOSE, MF_BYCOMMAND);//移除关闭
		#endif
			dlg.DoModal();
			.
			.
			.
	
		}
  1. 使用控制台:
		//定义一个头文件 加入调试开关
		#ifdef LOG_DEBUG
		#define log(str, ...)  printf(str, ##__VA_ARGS__)
		#else
		#define log(str, ...) 

		.
		.
		.
		log("debug\n"); 

知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

站内搜索

    撩我备注-博客

    joinee

    目录结构