在Easyx程序内实现边输入边显示在屏幕上

首先,因为是easyx程序,所以像scanf和printf此类函数我们就可以舍弃了。

这里我们选择getch

下面是一个使用实例:

#undef UNICODE
#undef _UNICODE
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
void visual()//可视化输入
{
    int n=0;
    char enter[100];
    while (true)
    {
        enter[n] = _getch();
        if (enter[n] == '\n' || enter[n] == '\r') break;///回车后便停止数据录入
        outtextxy(200+30*n, 200+ (200 - textheight(enter[n])) / 2, enter[n++]);
    }
}
int main()
{
    initgraph(800, 800);
    setbkcolor(GREEN);
    cleardevice();
    fillrectangle(200, 200, 600, 400);
    settextcolor(BLACK);
    settextstyle(50, 0, "楷体");
    setbkmode(TRANSPARENT);
    visual();
    getchar();
}

因为getch单次只能获取一个,所以我们需要对其加个循 

缺陷:1,也是最明显的,那就是已输的不能删,当然如果后续加判断应该是可以避免的

           2,在输入完毕后还需要手动对局部区域清除

对此我们也可以调用inputbox来代替,来构建一个输入窗口,这里不多赘述。

可参考http://t.csdnimg.cn/yS3Oa

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 EasyX 中返回上个页面并显示菜单,你可以使用函数和变量来实现页面的切换和菜单的显示。这里提供一种简单的实现方式: ```cpp #include <graphics.h> #include <conio.h> enum Page { PAGE_MENU, PAGE_SUBMENU1, PAGE_SUBMENU2, PAGE_SUBMENU3 }; // 定义不同页面的枚举值 int currentPage = PAGE_MENU; // 当前页面,默认为菜单页面 void drawMenu() { // 绘制菜单界面的代码 // ... } void drawSubMenu1() { // 绘制子菜单1界面的代码 // ... } void drawSubMenu2() { // 绘制子菜单2界面的代码 // ... } void drawSubMenu3() { // 绘制子菜单3界面的代码 // ... } void handleInput() { char key = getch(); // 获取用户按下的键盘输入 switch (currentPage) { case PAGE_MENU: if (key == '1') { currentPage = PAGE_SUBMENU1; // 切换到子菜单1页面 } else if (key == '2') { currentPage = PAGE_SUBMENU2; // 切换到子菜单2页面 } else if (key == '3') { currentPage = PAGE_SUBMENU3; // 切换到子菜单3页面 } break; case PAGE_SUBMENU1: case PAGE_SUBMENU2: case PAGE_SUBMENU3: if (key == '0') { currentPage = PAGE_MENU; // 返回到菜单页面 } break; } } int main() { initgraph(640, 480); while (true) { cleardevice(); // 清空屏幕内容 switch (currentPage) { case PAGE_MENU: drawMenu(); break; case PAGE_SUBMENU1: drawSubMenu1(); break; case PAGE_SUBMENU2: drawSubMenu2(); break; case PAGE_SUBMENU3: drawSubMenu3(); break; } handleInput(); // 处理用户输入 if (currentPage == PAGE_MENU) { break; // 如果当前页面是菜单页面,则退出循环,结束程序 } } closegraph(); return 0; } ``` 上述代码中,我们使用了一个 `currentPage` 变量来表示当前所在页面。根据用户的输入和当前页面,我们可以在 `handleInput()` 函数中判断要切换到哪个页面。在 `main()` 函数中,我们使用一个循环来不断绘制当前页面,并处理用户的输入。当用户在子菜单页面按下 0 键时,会返回到菜单页面并结束循环,从而结束程序。 你可以根据需要修改每个页面的绘制函数 `drawMenu()`、`drawSubMenu1()`、`drawSubMenu2()`、`drawSubMenu3()` 来绘制各个页面的界面内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值