中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > C/C++
自己写的 linux 下面控制光标的程序
作者:未知 时间:2005-09-13 23:27 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:自己写的 linux 下面控制光标的程序

curses 类程序, 包含头文件为stdio.h 和 curses.h

/*******************************************************************************
 * Program ID : 001
 * Program Name : redfox
 *
 * File ID : fox_001
 * File Name : fox.c
 *
 * Description :
 *  Output "fox" to your screen.
 * 
 * Modify Record :
 *  2005/02/19/    yangyu     creat
 *  2005/06/16/    yangyu     fix (add curs_set(0))
 *
 * Comment :
 *   Compilation Method :  gcc -lcurses -o redfox fox.c
 *    Runing  Method     :  ./redfox
 ******************************************************************************/

#include 

#include

#define FONTCOLOR COLOR_RED

/*******************************************************************************                            
 * Function ID : F_001
 * Function Name : F_Inital
 *  
 * Function Description :
 *  Screen inital
 *
 * Parameters : void
 *
 * Return Value : int
 *   0         :  Success
 *   none of 0 :  Failed
 *
 * Modify Record :
 * 2005/02/19/    yangyu     creat
 ******************************************************************************/


int F_Inital(void)
{
 initscr();
 cbreak();
 nonl();
 noecho();
 intrflush(stdscr, FALSE);
 keypad(stdscr, TRUE);
 curs_set(0);
 refresh();
 return 0;
}

/*******************************************************************************                            
 * Function ID : F_002
 * Function Name : F_OutPut_o
 *  
 * Function Description :
 *  Write "O" to screen
 *
 * Parameters : void
 *
 * Return Value : void
 *
 * Modify Record :
 * 2005/02/19/    yangyu     creat
 ******************************************************************************/


void F_OutPut_o(void)
{
 int iLine = LINES/2 -4;
 int iCol  = COLS/2;
 int i = 0;

 for(;i < 4; i++)
 {
  move(iLine, iCol-i);
  addch('@');
  refresh();
  usleep(10);
 }
 for(i = 0; i < 4; i++)
  {
  move(iLine+i+1, iCol-4);
  addch('@');
  refresh();
  usleep(10);
 }
 for(i = 4; i > 0; i--)
 {
  move(iLine+5, iCol-(i-1));
  addch('@');       
  refresh();
  usleep(10);
 }
 for(i = 4; i > 0; i--)
 {
  move(iLine+i, iCol+1);
  addch('@');
  refresh();
  usleep(10);
 }
}

/*******************************************************************************                            
 * Function ID : F_003
 * Function Name : F_OutPut_f
 *  
 * Function Description :
 *  Write "F" to screen
 *
 * Parameters : void
 *
 * Return Value : void
 *
 * Modify Record :
 * 2005/02/19/    yangyu     creat
 ******************************************************************************/

void F_OutPut_f(void)
{
 int iLine = 0;
 int iCol = 0;
 int i;
 iLine = LINES/2;
 iCol = COLS/4;
 for(i = 0; i < 6; i++)
 {
  move(iLine-4, iCol+i);
  addch('@');
  refresh();
  usleep(10);
 }
 for(i =4; i >= -1; i--)
 {
  move(iLine-i, iCol);
  addch('@');
  refresh();
  usleep(10);
 }
 for(i = 0; i < 4; i++)
 {
  move(iLine-2, iCol+1+i);
  addch('@');
  refresh();
  usleep(10);
 }

 
}

/*******************************************************************************                            
 * Function ID : F_004
 * Function Name : F_OutPut_x
 *  
 * Function Description :
 *  Write "X" to screen
 *
 * Parameters : void
 *
 * Return Value : void
 *
 * Modify Record :
 * 2005/02/19/    yangyu     creat
 ******************************************************************************/

void F_OutPut_x(void)
{
 int iLine = LINES/2;
 int iCol = COLS/4 * 3-4;
 int i;

 for(i = 0; i < 6; i++)
 {
  move(iLine-4+i, iCol-2+i);
  addch('@');
  refresh();
  usleep(10);
 }
 
 for(i = 0; i < 6; i++)
 {
  move(iLine-4+i, iCol+2-i);
  addch('@');
  refresh();
  usleep(10);
 }
}

/*******************************************************************************                            
 * Function ID : F_005
 * Function Name : F_OutPut_logo
 *  
 * Function Description :
 *  Write ">>Staring linux" to screen
 *
 * Parameters : void
 *
 * Return Value : void
 *
 * Modify Record :
 * 2005/02/19/    yangyu     creat
 ******************************************************************************/
 
void F_OutPut_logo(void)
{
 char strBuf[14] = {"Staring Linux"};
 char strBigBuf[1024];
 char strLargeBuf[1024+14];
 int i;
 memset(strBigBuf, 0x0, sizeof(strBigBuf));
 memset(strLargeBuf, 0x0, sizeof(strLargeBuf));
 for(i = 0; i < COLS-14; i++)
 {
  strcat(strBigBuf,">");
  sprintf(strLargeBuf,"%s%s", strBigBuf, strBuf);
  move(LINES-2,0);
  addstr(strLargeBuf);
  refresh();
  usleep(10);
 }
}

/*******************************************************************************                            
 * Function ID : F_006
 * Function Name : main
 *  
 * Function Description :
 *  main function.
 *
 * Parameters : void
 *
 * Return Value : int
 *   0         :  Success
 *   none of 0 :  Failed
 * Modify Record :
 * 2005/02/19/    yangyu     creat
 ******************************************************************************/

int main(void)
{
 int iFlag = 0;
 F_Inital();           /* Screen inital */
 if(has_colors() != 0)
 {
  start_color();
  init_pair(1, FONTCOLOR, COLOR_BLACK);
  attron(COLOR_PAIR(1));
  attron(A_BOLD);
  iFlag = 1;   
 }
 /* sub function call */
 F_OutPut_o();
 F_OutPut_f();
 F_OutPut_x();
 F_OutPut_logo();     
 
 if(iFlag == 1)
 {
  attroff(A_BOLD);
 }
 endwin();
 return 0;
}

/******************************** End of File *********************************/

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有