【问题标题】:Any idea how to make a button using TUI in C?知道如何在 C 中使用 TUI 制作按钮吗?
【发布时间】:2012-05-24 17:01:42
【问题描述】:

我正在开发一个基于控制台的 C 项目,我希望它有一些按钮。

  • 如何添加一些?
  • 如何管理焦点?

我正在使用windows.h 制作 TUI。

【问题讨论】:

  • 如何“使用 Windows.h 制作 TUI”?除非您找到了(大部分已被遗忘的)MEWEL 库的副本,否则这听起来几乎是不可能的。如果您使用的是 MEWEL,那么您只需调用 CreateWindow 并传递 BUTTON 类即可创建一个按钮,就像在正常的 Windows 编程中一样。
  • 发帖者可能指的是控制台 I/O 函数:SetConsoleCursorPosition、SetConsoleTextAttribute 等。它是 DOS 时代 Borland conio.h 函数的“现代”等价物。
  • @ChrisV:我知道他们。我在 NT 3.51/NT 4 时代使用它们编写了一些代码,但我坚持“几乎不可能”的说法——如果你愿意,可以称之为“现代”,但实际上它更容易 在 MS-DOS 上编写基于文本的 UI,而不是使用控制台功能。
  • @JerryCoffin 我应该使用 PURE C。我不能使用 C++ 代码。所以我不能使用类。现在,我可以使用基于文本的 UI 了吗?你知道什么好的教程吗?

标签: c windows console tui


【解决方案1】:

基本上使用面板库(添加到 ncurses)并制作第二个带有边框的窗口,其中包含您的“按钮文本”。请记住指定 z 顺序,以便第二个窗口浮动在第一个窗口之上,最好是在第一个窗口的非文本包含部分之上。

然后绑定键导航,其他窗口的鼠标进入/退出例程将焦点指向“下一个”所需窗口并切换该窗口的颜色(以指示突出显示)。最后为窗口提供一个键处理程序,以捕获输入/空格/任何内容作为按钮单击(然后可以调用您绑定到它的任何函数)。

虽然使用菜单功能可能有更好的方法来做到这一点,但我没有发现(在我公认的快速搜索中)一种将“菜单窗口”的菜单显示与显示以外的操作挂钩的方法菜单窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2022-08-13
    • 2023-03-09
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多