有关EasyX,怎么解决输入文字且不创建新窗口

EasyX:已经有了一个绘图窗口,想要这个窗口接受从控制台输入的汉字,但是现在的代码写入后,会新建一个窗口,原来的窗口消失,请问怎么解决这个问题?

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7523878
  • 这篇博客你也可以参考下:番外篇:入门EasyX图形库(带你进入不一样的程序窗口,超详解)
  • 除此之外, 这篇博客: EasyX接收并显示从控制台输入的数字和英文中的 EasyX如何接收并显示从控制台输入的数字和英文 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    自学EasyX,由于Easyx绘图库里执行不了cin和cout函数,无法通过此方法实现从控制台显示输入的数字和英文
    对这个问题困扰很久找不到其他易懂的办法所以一直解决不了。相信很多人也都跟我一样,恰好上次找到了笨方法,就把它分享给大家~

    1.首先需将字符集设置为多字符集
    在这里插入图片描述

    2.其次先看代码

    #include<iostream>
    #include<graphics.h>
    #include<string>
    #include<conio.h>
    
    using namespace std;
    
    int main()
    {   
        //设置窗口大小  背景颜色
    	initgraph(480, 480);
    	setbkcolor(WHITE);
    	cleardevice();
    	
    	//设置字体颜色 还有测试显示字体
    	settextcolor(BLACK);
    	settextstyle(25, 0, "黑体");
    	outtextxy(10, 220, "显示内容:");
    
    
    	string str1,str2;   //头文件 string 
    	//str1用来放c的总内容 str2每次存放“显示内容:”+str1,方便输出
    	
    	char c;  //定义字符c接收键盘输入
    	while ((c = _getch()) != '\r')  //如果没按回车,接收一个c
    	{  //getch()头文件 conio.h
    		str2 = "";
    		if (c == '\b')  //如果c是退格符,str1删掉一个
    		{
    			str1 = str1.substr(0, str1.size() - 1);
    
    		}
    		else{
    			str1 += (int)c;  
    		}
    		str2 = "显示内容:" + str1;
    		cleardevice();
    		outtextxy(10, 220, str2.c_str());  //在窗口坐标为(10,220)的地方开始输出str2的内容
    	}
    	while (1);  //结束不跳出
    }
    

    说明:这里str1拿来存放getch()得到的总内容, str2用来存放 显示内容+str1,一定要区分

    运行结果:输入Easy.X
    在这里插入图片描述
    由于getch()每次只接收一个字符,所以它只能显示接收输入的字符和数字,并不能显示汉字,听说drawtext()可以解决,可一直找不到其他办法,要是有看到或者有其他方法也要共享一下给我哦


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^