MFC下调用控制台和控制台下MFC库的支持 补充

补充:https://www.cnblogs.com/wind-net/p/3153971.html

2.通过配置相关属性
  通过在 属性->配置属性->生成事件->后期生成事件->命令行 中添加 
  editbin /subsystem:console $(OutDir)\$(TargetName).exe
  使用cout或者printf向控制台输出 也可以通过获取标准输出句柄然后调用WriteConsole
  方式输出

 1 void CtestDlg::OnBnClickedButtonwriteconsole()
 2 {
 3     printf("printf-->Hello World!!\n\n"); // 写数据
 4 
 5     HANDLE  outPut;
 6     outPut = GetStdHandle(STD_OUTPUT_HANDLE);
 7     CString strtmp;
 8     strtmp = "WriteConsole-->Hello World! \n\n";
 9     WriteConsole(outPut, strtmp, strtmp.GetLength(), NULL, NULL);
10 
11     std::cout << "-->std::cout <<  \n\n--------------\n\n\n\n";
12 }

关闭控制台窗口会导致应用全部关闭,修改控制台标题,去除关闭菜单! 

 1 BOOL CtestDlg::OnInitDialog()
 2 {
 3     CDialog::OnInitDialog();
 4 ...
 5     char   szBuf[100];
 6     GetConsoleTitle(szBuf, 100);//得到控制台标题
 7     HWND   hwnd = ::FindWindow(NULL, szBuf);//查找控制台
 8     HMENU   hmenu = ::GetSystemMenu(hwnd, FALSE);//获取菜单
 9     ::RemoveMenu(hmenu, SC_CLOSE, MF_BYCOMMAND);//移除关闭
10 
11     return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
12 }

这个控制台在代码编译后链接时加入的。

有时候需要在程序编译之前或之后做一些操作。

https://www.cnblogs.com/suntanyong88/articles/10422660.html

猜你喜欢

转载自www.cnblogs.com/qq8533/p/12200420.html
今日推荐