资源简介
文本菜单,但不是dos环境的,比较直观,有输出报表功能,运行后可以用鼠标操作,直接代码文件,报告什么的就不传了。
代码片段和文件信息
#include“htt.h“
int main()
{
COORD size = {SCR_COL SCR_ROW}; /*窗口缓冲区大小*/
gh_std_out = GetStdHandle(STD_OUTPUT_HANDLE); /* 获取标准输出设备句柄*/
gh_std_in = GetStdHandle(STD_INPUT_HANDLE); /* 获取标准输入设备句柄*/
SetConsoletitle(gp_sys_name); /*设置窗口标题*/
SetConsoleScreenBufferSize(gh_std_out size); /*设置窗口缓冲区大小80*25*/
LoadData();
InitInterface(); /*界面初始化*/
RunSys(&head); /*系统功能模块的选择及运行*/
CloseSys(head); /*退出系统*/
return 0;
}
/**
* 函数名称: InitInterface
* 函数功能: 初始化界面.
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
*
* 调用说明:
*/
void InitInterface()
{
WORD att = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY
| BACKGROUND_BLUE; /*黄色前景和蓝色背景*/
SetConsoleTextAttribute(gh_std_out att); /*设置控制台屏幕缓冲区字符属性*/
ClearScreen(); /* 清屏*/
/*创建弹出窗口信息堆栈,将初始化后的屏幕窗口当作第一层弹出窗口*/
gp_scr_att = (char *)calloc(SCR_COL * SCR_ROW sizeof(char));/*屏幕字符属性*/
gp_top_layer = (layer_NODE *)malloc(sizeof(layer_NODE));
gp_top_layer->layerNo = 0; /*弹出窗口的层号为0*/
gp_top_layer->rcArea.Left = 0; /*弹出窗口的区域为整个屏幕窗口*/
gp_top_layer->rcArea.Top = 0;
gp_top_layer->rcArea.Right = SCR_COL - 1;
gp_top_layer->rcArea.Bottom = SCR_ROW - 1;
gp_top_layer->pContent = NULL;
gp_top_layer->pScrAtt = gp_scr_att;
gp_top_layer->next = NULL;
ShowMenu(); /*显示菜单栏*/
ShowState(); /*显示状态栏*/
return;
}
/**
* 函数名称: ClearScreen
* 函数功能: 清除屏幕信息.
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
*
* 调用说明:
*/
void ClearScreen(void)
{
CONSOLE_SCREEN_BUFFER_INFO bInfo;
COORD home = {0 0};
unsigned long size;
GetConsoleScreenBufferInfo( gh_std_out &bInfo );/*取屏幕缓冲区信息*/
size = bInfo.dwSize.X * bInfo.dwSize.Y; /*计算屏幕缓冲区字符单元数*/
/*将屏幕缓冲区所有单元的字符属性设置为当前屏幕缓冲区字符属性*/
FillConsoleOutputAttribute(gh_std_out bInfo.wAttributes size home NULL);
/*将屏幕缓冲区所有单元填充为空格字符*/
FillConsoleOutputCharacter(gh_std_out ‘ ‘ size home NULL);
return;
}
/**
* 函数名称: ShowMenu
* 函数功能: 在屏幕上显示主菜单 并设置热区 在主菜单第一项上置选中标记.
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
*‘
* 调用说明:
*/
void ShowMenu()
{
CONSOLE_SCREEN_BUFFER_INFO bInfo;
CONSOLE_CURSOR_INFO lpCur;
COORD size;
COORD pos = {0 0};
int i j;
int PosA = 2 PosB;
char ch;
GetConsoleScreenBufferInfo( gh_std_out &bInfo );
size.X = bInfo.dwSize.X;
size.Y = 1;
SetConsoleCursorPosition(gh_std_out pos);
for (i=0; i < 5; i++) /*在窗口第一行第一列处输出主菜单项*/
{
printf(“ %s “ ga_main_menu[i]);
}
GetConsoleCursorInfo(gh_std_out &lpCur);
lpCur.bVisible = FALSE;
SetConsoleCursorInfo(gh_std_out &lpCur); /*隐藏光标*/
/*申请动态存储区作为存放菜单条屏幕区字符信息的缓冲区*/
gp_buff_menubar_info = (CHAR_INFO *)malloc(size.X * size.Y * sizeof(CHAR_INFO));
SMALL_RECT rcMenu = {0 0 size.X-1 0} ;
/*将窗口第一行的内容读入到存放菜单条屏幕区字符信息的缓
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-07-17 08:42 HTT\
文件 1076 2013-10-18 22:59 HTT\HTT.cbp
文件 1257 2014-07-17 08:38 HTT\HTT.depend
文件 346 2014-07-17 08:42 HTT\HTT.layout
目录 0 2014-05-17 10:44 HTT\bin\
目录 0 2014-07-17 08:42 HTT\bin\Debug\
文件 102366 2014-07-17 08:42 HTT\bin\Debug\HTT.exe
文件 9209 2013-10-23 17:55 HTT\htt.h
文件 125382 2014-07-17 08:42 HTT\main.c
目录 0 2014-01-17 21:59 HTT\obj\
目录 0 2014-07-17 08:42 HTT\obj\Debug\
文件 108416 2014-07-17 08:42 HTT\obj\Debug\main.o
- 上一篇:stm32f103zet6开发板LCD显示屏源码
- 下一篇:合肥工业大学课件
相关资源
- 计算法和查表法实现的CRC16校验码生成
- 图基本操作的编程实现源码
- VC-easyx绘图游戏简易教程
- 中颖单片机SH79F3283P例程
- 二叉树需要的的5个基本操作运算
- 线程安全型队列的实现
- 基于ZigBee + HXD019D 的万能红外转发器
- acllib.rar
- 单词处理程序
- 数模转换-DAC124s085
- C Primer Plus(第五版)中文版编程练习
- 多线程实现双向链表增删改
- 稀疏矩阵的十字链表表示方法:矩阵
- 串的基本操作定长顺序存储表示:初
- 在LPC2368上实现的FFT程序功率
- 基于单片机的串口多机通信6机
- 流水灯实验报告
- 数据结构与算法教学大纲程序代码
- 汽车控制系统
- GPS公交自动报站
- 三角函数包括反三角函数不调用库实
- RC4 加密算法 C演示代码
- STC12C2052AD的参考例程
- Malloc和mfree函数的实现原理
- ledkey.dll simboard.dll
- 51核心 自制鼠标 PS2协议 PAN3401光学芯
- Lsd基于TCP实现聊天系统
- 广工数据结构anyview2019最新完整参考答
- C笔试面试题及答案解析(一)
- 汽车加油问题 动态规划
评论
共有 条评论