`
deepfuture
  • 浏览: 4412660 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80135
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70355
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103604
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286588
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15056
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67801
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32292
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46075
社区版块
存档分类
最新评论

linux-Linux终端图形库curses-C-窗口与子窗口

阅读更多
编译:


mysea@mysea-desktop:~/test$ gcc -lncursesw -std=c99 -o cursestest cursestest.c


mysea@mysea-desktop:~/test$ ./cursestest


代码:


#include <ncursesw/ncurses.h>
#include <locale.h>

int main(void){

//init_pair(short index,short foreground,short background)初始化颜色索引

//attron(COLOR_PAIR(索引号)|属性)

//newwin建立窗口,derwin建立窗口的子窗口(相对于父窗口相对位置),subwin建立窗口的子窗口(相对于根窗口绝对位置)

    setlocale(LC_ALL,&quot;&quot;);

    WINDOW *win1,*win2,*subwin;

    initscr();//初始化

    win1=newwin(15,50,1,1);//新窗口(行,列,begin_y,begin_x)

    box(win1,ACS_VLINE,ACS_HLINE);

    mvwprintw(win1,1,1,&quot;WIN1&quot;);

    mvwprintw(win1,2,1,&quot;www.deepfuturesoft.info/myblog/&quot;);



    win2=newwin(10,40,10,30);//新窗口(行,列,begin_y,begin_x)

    box(win2,ACS_VLINE,ACS_HLINE);

    mvwprintw(win2,1,1,&quot;WIN2&quot;);

    mvwprintw(win2,2,1,&quot;www.deepfuturesoft.info/myblog/&quot;);



    subwin=derwin(win2,3,20,3,5); //子窗口

    box(subwin,ACS_VLINE,ACS_HLINE);

    mvwprintw(subwin,1,5,&quot;按任意键退出&quot;);//(窗口,y,x,字符串)


    refresh();//刷新整个大窗口stdscr

    wrefresh(win1);

    wrefresh(win2);


    touchwin(win1);//转换当前窗口为win1

    wrefresh(win1);

    getch();//win1显示完,等待按键显示win2


    touchwin(win2);//转换当前窗口为win2 

    //使用doupdate,可以事先定义要刷新的部分,然后刷新

    wnoutrefresh(win2);  

    wnoutrefresh(subwin);

    doupdate();

    getch();//等待按键



    delwin(win1);

    delwin(subwin);

    delwin(win2);

    endwin();//结束

    return 0;   

}




0
0
分享到:
评论

相关推荐

    Linux命令行终端图形界面编程库curses介绍

    ### Linux命令行终端图形界面编程库curses介绍 #### 一、概述 curses是一个功能强大的函数库,广泛应用于Linux/Unix系统中的图形界面开发。它允许开发者在文本模式下的终端环境中创建图形用户界面(GUI),使原本...

    curses库使用指南

    `curses`是一个用于创建基于终端的交互式应用程序的库,它在Unix和类Unix系统(如Linux和macOS)上广泛使用。`curses`库提供了一系列函数,使得程序员可以方便地管理屏幕输出,处理键盘输入,并在全屏应用程序中创建...

    使用curses管理基于文本的屏幕

    curses是一个用于创建基于文本的用户界面的库,它在Linux和类UNIX环境中非常流行。curses的重要性在于它提供了一个介于简单的基于行的程序和复杂的图形界面(如GTK/GNOME或QT/KDE)之间的解决方案。随着图形用户界面...

    curses

    在Linux C环境下的图形界面编程,我们通常会利用到curses库,这是一个强大的文本界面库,主要用于创建控制台应用程序中的动态、交互式图形用户界面。curses提供了多种功能,包括屏幕更新、窗口管理、键盘输入处理等...

    Beginning Linux Programming 4th-Nov 2007.pdf

    - 介绍Linux下的虚拟终端和图形终端的区别。 - 分析终端模拟器的工作原理。 - 提供终端定制和管理的技巧。 6. **第6章:Managing Text-Based Screens with curses(使用curses管理文本界面)** - 介绍curses库...

    curses.h自己编的程序

    在命令行中,这样的程序通常会更高效,因为它可以直接与终端进行交互,而不需要依赖图形窗口系统的支持。 描述中的重复内容可能是因为输入错误,但基本思想是程序能在Linux的命令行界面下运行,并且能够正确地显示...

    linux下 五子棋代码(可人机对战 )

    - `curses`库是用于处理文本终端用户界面的一个库,它允许程序在没有图形化窗口的情况下创建交互式用户界面。`curses.c`和`curses.h`可能包含了使用ncurses库实现游戏界面的代码,ncurses是一个增强版的curses库,...

    Java Curses Library:JCurses,一个适用于Windows和Linux的Java控制台窗口工具包-开源

    Java Curses Library,简称为JCurses,是一款专为Java开发者设计的开源库,它使得在Windows和Linux等操作系统上创建和管理基于文本终端的应用程序变得可能。JCurses库的出现填补了Java在控制台应用程序开发领域的...

    Curses-Library-Developers-Guide.zip_Linux/Unix编程_Unix_Linux_

    在Curses库中,屏幕被视为一个可以分割成多个子窗口的虚拟窗口系统。开发者可以通过创建、移动和更新这些窗口来构建复杂的用户界面。例如,你可以创建主窗口并在其中嵌套子窗口,每个窗口都可以独立处理输入和显示。...

    Curses++-开源

    Curses库本身是一个用于控制文本模式终端的低级库,它允许开发者在没有图形用户界面的情况下创建交互式应用程序。Curses++通过提供一组C++类来简化这一过程,使开发者可以使用更加现代和直观的C++语法来实现终端交互...

    LINUX编程白皮书 (全集)

    8.22 [N]Curses函数概述 306 第9章 I/O端口编程 307 9.1 鼠标编程 307 9.2 调制解调器编程 308 9.3 打印机编程 308 9.4 游戏杆编程 308 第10章 把应用程序移植到Linux上 309 10.1 介绍 309 10.2 信号处理 309 10.2.1...

    Linux编程从入门到精通

    linux内核编程 目 录 雷蒙序 简介 Linux文档工程小组“公告” 译者序 第一部分 Linux内核 前言 第1章 硬件基础与软件基础 6 1.1 硬件基础 6 1.1.1 CPU 7 1.1.2 存储器 8 1.1.3 总线 8 1.1.4 控制器和外设 8 ...

    Linux程序设计 第4版.haozip01

    6.6 子窗口 191 6.7 keypad模式 193 6.8 彩色显示 195 6.9 pad 198 6.10 cd唱片应用程序 200 6.10.1 新cd唱片应用程序的开始部分 200 6.10.2 main函数 202 6.10.3 建立菜单 203 6.10.4 操作数据库文件 204 ...

    linux编程白皮书

    本书对Linux操作系统及其编程作了整体的介绍,以支持用于开发软件的公开源码模型。对内存管理、进程及其通信机制、PCI、内核模块编程及内核系统结构作了详细的解释,且附有很多程序代码实例。对深入研究Linux下的...

    Linux程序设计 第4版.haozip02

    6.6 子窗口 191 6.7 keypad模式 193 6.8 彩色显示 195 6.9 pad 198 6.10 cd唱片应用程序 200 6.10.1 新cd唱片应用程序的开始部分 200 6.10.2 main函数 202 6.10.3 建立菜单 203 6.10.4 操作数据库文件 204 ...

    ncurses-cn-2nd.pdf

    - **子窗口**: 支持在主窗口内创建子窗口,便于构建复杂的界面布局。 - **面板**: 提供面板功能,可以轻松实现窗口之间的重叠和层级管理。 - **颜色配对**: 可以定义不同的颜色组合,通过`init_pair()`和`attron()`...

    Linux编程白皮书

    8.22 [N]Curses函数概述 306 第9章 I/O端口编程 307 9.1 鼠标编程 307 9.2 调制解调器编程 308 9.3 打印机编程 308 9.4 游戏杆编程 308 第10章 把应用程序移植到Linux上 309 10.1 介绍 309 10.2 信号处理 309 10.2.1...

    LINUX编程白皮书

    非常全的 讲linux编程的经典书籍。 本书对Linux操作系统及其编程作了整体的介绍,以支持用于开发软件的公开源码模型。对内存管理、进程及其通信机制、PCI、内核模块编程及内核系统结构作了详细的解释,且附有很多...

Global site tag (gtag.js) - Google Analytics