📄 通用菜单生成程序.htm
字号:
function HideMenu()
{
var mX;
var mY;
var vDiv;
var mDiv;
if (isvisible == true)
{
vDiv = document.all("menuDiv");
mX = window.event.clientX + document.body.scrollLeft;
mY = window.event.clientY + document.body.scrollTop;
if ((mX < parseInt(vDiv.style.left)) || (mX > parseInt(vDiv.style.left)+vDiv.offsetWidth) || (mY < parseInt(vDiv.style.top)-h) || (mY > parseInt(vDiv.style.top)+vDiv.offsetHeight)){
vDiv.style.visibility = "hidden";
isvisible = false;
}
}
}
function ShowMenu(vMnuCode,tWidth) {
vSrc = window.event.srcElement;
vMnuCode = "<table id='submenu' cellspacing=1 cellpadding=3 style='width:"+tWidth+"' class=menu onmouseout='HideMenu()'><tr height=23><td nowrap align=left class=MenuBody>" + vMnuCode + "</td></tr></table>";
h = vSrc.offsetHeight;
w = vSrc.offsetWidth;
l = vSrc.offsetLeft + leftMar+4;
t = vSrc.offsetTop + topMar + h + space-2;
vParent = vSrc.offsetParent;
while (vParent.tagName.toUpperCase() != "BODY")
{
l += vParent.offsetLeft;
t += vParent.offsetTop;
vParent = vParent.offsetParent;
}
menuDiv.innerHTML = vMnuCode;
menuDiv.style.top = t;
menuDiv.style.left = l;
menuDiv.style.visibility = "visible";
isvisible = true;
makeRectangularDropShadow(submenu, MENU_SHADOW_COLOR, 4)
}
function makeRectangularDropShadow(el, color, size)
{
var i;
for (i=size; i>0; i--)
{
var rect = document.createElement('div');
var rs = rect.style
rs.position = 'absolute';
rs.left = (el.style.posLeft + i) + 'px';
rs.top = (el.style.posTop + i) + 'px';
rs.width = el.offsetWidth + 'px';
rs.height = el.offsetHeight + 'px';
rs.zIndex = el.style.zIndex - i;
rs.backgroundColor = color;
var opacity = 1 - i / (i + 1);
rs.filter = 'alpha(opacity=' + (100 * opacity) + ')';
el.insertAdjacentElement('afterEnd', rect);
global.fo_shadows[global.fo_shadows.length] = rect;
}
}
</script>
<script language='JavaScript' type='text/JavaScript'>
//菜单列表
var menu1="<img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=2'>基础应用</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder4.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=3'>程序设计</a><br><img src='images/tree_line3.gif' width='17' height='16' valign='abvmiddle'><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=14'>C程序</a><br><img src='images/tree_line3.gif' width='17' height='16' valign='abvmiddle'><img src='images/tree_line2.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=15'>Shell程序</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=4'>高级应用</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=5'>网络应用</a><br><img src='images/tree_line2.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=16'>存储备份</a><br>";
var menu2="<img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=7'>Oracle</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=8'>Informix</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=9'>Sybase</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=10'>DB2</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=11'>MySql</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=12'>Fox系列</a><br><img src='images/tree_line2.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=36'>SQL查询语言</a><br>";
var menu3="<img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=18'>计算机主机</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=19'>打印机</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=20'>路由器</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=21'>交换机</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=22'>SCSI卡</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=23'>磁带机</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=24'>MO</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=25'>刻录机</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=26'>多用户卡</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=27'>终端</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=28'>网卡</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=29'>终端服务器</a><br><img src='images/tree_line2.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=30'>调制解调器</a><br>";
var menu4="<img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=32'>金融</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=33'>邮政</a><br><img src='images/tree_line1.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=34'>电信</a><br><img src='images/tree_line2.gif' width='17' height='16' valign='abvmiddle'><img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'><a style=font-size:9pt;line-height:14pt; href='ShowClass2.asp?ClassID=35'>保险</a><br>";
var menu_skin="<a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=1'>蓝天动力</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=13'>牧虫典雅</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=14'>雅虎秋梦</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=15'>灰色畅想</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=16'>绿雨飘香</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=17'>幽绿芭蕾</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=18'>晴空幽蓝</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=19'>清爽秋色</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=20'>书卷飘香</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=21'>青青绿草</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=22'>春满校园</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=23'>金色农庄</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=24'>博大媒体</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=25'>紫色梦幻</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=26'>紫色水晶</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=27'>清香咖啡</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=28'>檀香古色</a><br><a style=font-size:9pt;line-height:14pt; href='SetCookie.asp?Action=SetSkin&ClassID=14&SkinID=29'>红色中国</a><br>";
</script>
</head>
<body leftmargin=0 topmargin=0 onmousemove='HideMenu()'>
<div id=menuDiv style='Z-INDEX: 1000; VISIBILITY: hidden; WIDTH: 1px; POSITION: absolute; HEIGHT: 1px; BACKGROUND-COLOR: #9cc5f8'></div>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" class="topborder">
<tr class="nav_top">
<td valign="top">|<a href='../' target='_blank'>光盘中心</a>|<a href='../softdown' target='_blank'>下载中心</a>|<a href='/video' target='_blank'>视频中心</a>|<a href='./'><font color=red>文章中心</font></a>|<a href='../ly' target='_blank'>留言中心</a>|<a href='http://unix-cd.huaanpawn.com/bbs/' target='_blank'>技术论坛</a>| </td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="60">
<table width="100%" align="center" cellpadding="0" cellspacing="0">
<tr>
<td> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" Class="nav_main">
<tr>
<td width="180">
<a href='http://unix-cd.com' title='Unix爱好者'><img src='http://unix-cd.com/unixlm.gif' width='180' height='60' border='0'></a>
</td>
<td> <div align="center">
<a href='http://sdccf.nease.net' target='_blank' title='Unix爱好者:http://sdccf.nease.net'><img src='http://sdccf.nease.net/unixcd.gif' width='480' height='60' border='0'></a>
</div></td>
<td width="80"><table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" align="center">
<tr valign="middle">
<td align="center"><img src="Images/home.gif" align="absmiddle" width="16" height="16"></td>
<td align="center"><a href="#" onClick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://unix-cd.com')">设为首页</a></td>
</tr>
<tr valign="middle">
<td align="center"><img src="Images/email.gif" align="absmiddle" width="16" height="17"></td>
<td align="center"><a href="mailto:webmaster@unix-cd.com">联系站长</a></td>
</tr>
<tr valign="middle">
<td align="center"><img src="Images/bookmark.gif" align="absmiddle" width="16" height="16"></td>
<td align="center"><a href="javascript:window.external.addFavorite('http://unix-cd.com','Unix爱好者')">加入收藏</a></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr class="nav_bottom">
<td height="9"></td>
</tr>
</table></td>
</tr>
<tr valign="middle" class="nav_menu">
<td height="22" valign="middle">
|<a href='./'>首页</a>|<a href='ShowClass2.asp?ClassID=1' onMouseOver='ShowMenu(menu1,100)'><font color=red>操作系统</font></a>|<a href='ShowClass2.asp?ClassID=6' onMouseOver='ShowMenu(menu2,100)'>数据库</a>|<a href='ShowClass2.asp?ClassID=17' onMouseOver='ShowMenu(menu3,100)'>硬件设备</a>|<a href='ShowClass2.asp?ClassID=31' onMouseOver='ShowMenu(menu4,100)'>行业应用</a>|<a href='#' onMouseOver='ShowMenu(menu_skin,100)'>自选风格</a>|
</td>
</tr>
</table>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="border">
<tr valign="middle" class="txt_css">
<td width=15><img src="Images/arrow2.gif" width="6" height="7">
</td>
<td width=550>
您现在的位置:<a href='http://unix-cd.com'>Unix爱好者</a>>><a href='./'>文章中心</a>>><a href='ShowClass2.asp?ClassID=1&LayoutID=1'>操作系统</a>>><a href='ShowClass2.asp?ClassID=3&LayoutID=1'>程序设计</a>>><a href='ShowClass2.asp?ClassID=14'>C程序</a>>>正文
</td>
<td width=195 align=right>今天是:
<script language="JavaScript" type="text/JavaScript">
var day="";
var month="";
var ampm="";
var ampmhour="";
var myweekday="";
var year="";
mydate=new Date();
myweekday=mydate.getDay();
mymonth=mydate.getMonth()+1;
myday= mydate.getDate();
myyear= mydate.getYear();
year=(myyear > 200) ? myyear : 1900 + myyear;
if(myweekday == 0)
weekday=" 星期日 ";
else if(myweekday == 1)
weekday=" 星期一 ";
else if(myweekday == 2)
weekday=" 星期二 ";
else if(myweekday == 3)
weekday=" 星期三 ";
else if(myweekday == 4)
weekday=" 星期四 ";
else if(myweekday == 5)
weekday=" 星期五 ";
else if(myweekday == 6)
weekday=" 星期六 ";
document.write(year+"年"+mymonth+"月"+myday+"日 "+weekday);
</script> </td>
</tr>
</table>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="13" align="center" valign="top"><table width="755" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="13" Class="tdbg_left2"></td>
</tr>
</table></td>
</tr>
</table>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" class="border2">
<tr>
<td valign="top"><table width="100%" border="0" align="center" cellpadding="2" cellspacing="0" class="border">
<tr>
<td class="title"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="72%" class="title_maintxt"><img src="Images/arrow.gif" width="11" height="14" align="absmiddle">
通用菜单生成程序
</td>
<td width="28%" class="title_maintxt">
<font color=red>热</font><font color=green>荐</font>
</td>
</tr>
</table> </td>
</tr>
<tr align="center" valign="middle">
<td height="40" colspan="2"><font size="4"><strong>通用菜单生成程序</strong></font> </td>
</tr>
<tr align="center" class="tdbg_leftall">
<td colspan="2">[
作者:<a href='mailto:htldm@gaoguomodel.com'>htldm</a>转贴自:http://www.chinaunix.net点击数:3336文章录入:<a href='ShowUserInfo.asp?UserID=2399'>sdccf</a>
]</td>
</tr>
<tr>
<td colspan="2"><table width="100%" border="0" cellspacing="5" cellpadding="0">
<tr>
<td height="200" valign="top"> <P><BR><BR>/*********** 主程序 ****************/ <BR>/*** cc menu.c -l<a name=3></a><B style='color:black;background-color:#ff9999'>curses</B> -omenu */ <BR><BR>#include <stdio.h> <BR>#include <curses.h> <BR>#include <ctype.h> <BR>#define <a name=2></a><B style='color:black;background-color:#99ff99'>ENTER</B> 10 <BR>#define ESCAPE 27 <BR><BR>WINDOW *menubar,*messagebar,*temp,*temp1; <BR>char param[10][10][13]; <BR><BR><BR>void init_<B style='color:black;background-color:#ff9999'>curses</B>() <BR>{ <BR> initscr(); <BR> start_color(); <BR> init_pair(1,COLOR_WHITE,COLOR_BLUE); <BR> init_pair(2,COLOR_BLUE,COLOR_WHITE); <BR> init_pair(3,COLOR_RED,COLOR_WHITE); <BR> init_pair(4,COLOR_WHITE,COLOR_RED); <BR> curs_set(0); <BR> noecho(); <BR> keypad(stdscr,TRUE); <BR>} <BR><BR><BR>void GetSubStr(char *des, char *src, char ch,int n) <BR>{ <BR> int i,len; <BR> char *p1,*p, tmp[300]; <BR><BR> strcpy( tmp, src ); <BR> *des=0; <BR> p1 = tmp; <BR> i=0; <BR> while(i<n) <BR> { <BR> i++; <BR> p = (char *)strchr(p1,ch); <BR> if(p != NULL) <BR> { <BR> *p++ = 0; <BR> p1 = p; <BR> } <BR> } <BR> p = (char *)strchr(p1,ch); <BR> if(p != NULL) <BR> { <BR> *p = 0; <BR> strcpy(des,p1); <BR> } <BR>} <BR><BR><BR>int get_param(char *name) <BR>{ <BR> FILE *fp; <BR> char ss[201],xm[3],gs[3]; <BR> int i,j; <BR><BR> sprintf(ss,"%s.conf",name); <BR> if((fp=fopen(ss,"r"))==NULL) return(-1); <BR> for(j=0;j<10;j++) for(i=0;i<10;i++) memset(param[j][i],0,13); <BR> while(1) <BR> { <BR> memset(ss,0,201); <BR> fgets(ss,200,fp); <BR> if(feof(fp)) break; <BR> if(ss[0]=='#') continue; <BR> GetSubStr(xm,ss,'|',0); <BR> GetSubStr(gs,ss,'|',1); <BR> j=atoi(xm); <BR> for(i=1;i<=atoi(gs);i++) <BR> { <BR> sprintf(param[j][0],"%s",gs); <BR> GetSubStr(param[j][i],ss,'|',i+1); <BR> } <BR> } <BR> fclose(fp); <BR> return(0); <BR>} <BR><BR><BR>void draw_menubar(WINDOW *menubar) <BR>{ <BR> int i; <BR> wbkgd(menubar,COLOR_PAIR(2)); <BR><BR> for(i=0;i<atoi(param[0][0]);i++) <BR> { <BR> wattron(menubar,COLOR_PAIR(3)); <BR> mvwprintw(menubar,0,i*14+2,"%1d.",i+1); <BR> wattroff(menubar,COLOR_PAIR(3)); <BR> mvwprintw(menubar,0,i*14+4,"%-12s",param[0][i+1]); <BR> } <BR>} <BR><BR><BR>WINDOW **draw_menu(int menu) <BR>{ <BR> int i,start_col; <BR> WINDOW **items; <BR> items=(WINDOW **)malloc((atoi(param[menu][0])+1)*sizeof(WINDOW *)); <BR> start_col=(menu-1)*14+2; <BR><BR> items[0]=newwin(atoi(param[menu][0])+2,14,3,start_col); <BR> wbkgd(items[0],COLOR_PAIR(2)); <BR> box(items[0],ACS_VLINE,ACS_HLINE); <BR> for(i=1;i<=atoi(param[menu][0]);i++) <BR> { <BR> items[i]=subwin(items[0],1,12,3+i,start_col+1); <BR> wprintw(items[i],"%s",param[menu][i]); <BR> } <BR> wbkgd(items[1],COLOR_PAIR(4)); <BR> wrefresh(items[0]); <BR> return items; <BR>} <BR><BR><BR>void delete_menu(WINDOW **items,int count) <BR>{ <BR> int i; <BR> for(i=0;i<count;i++) delwin(items[i]); <BR> free(items); <BR>} <BR><BR><BR>int scroll_menu(WINDOW **items,int menu) <BR>{ <BR> int key,count,selected=0; <BR><BR> count=atoi(param[menu][0]); <BR> while (1) <BR> { <BR> key=getch(); <BR> if (key==<a name=0></a><B style='color:black;background-color:#ffff66'>KEY_</B>DOWN || key==<B style='color:black;background-color:#ffff66'>KEY_</B>UP) <BR> { <BR> wbkgd(items[selected+1],COLOR_PAIR(2)); <BR> wnoutrefresh(items[selected+1]); <BR> if (key==<B style='color:black;background-color:#ffff66'>KEY_</B>DOWN) <BR> selected=(selected+1) % count; <BR> else <BR> selected=(selected+count-1) % count; <BR> wbkgd(items[selected+1],COLOR_PAIR(4)); <BR> wnoutrefresh(items[selected+1]); <BR> doupdate(); <BR> } <BR> else if (key==<B style='color:black;background-color:#ffff66'>KEY_</B>LEFT || key==<B style='color:black;background-color:#ffff66'>KEY_</B>RIGHT) <BR> { <BR> delete_menu(items,count+1); <BR> touchwin(stdscr); <BR> refresh(); <BR> if (key==<B style='color:black;background-color:#ffff66'>KEY_</B>LEFT) <BR> { <BR> menu-=1; <BR> if(menu<=0) menu=atoi(param[0][0]); <BR> items=draw_menu(menu); <BR> return scroll_menu(items,menu); <BR> } <BR> if (key==<B style='color:black;background-color:#ffff66'>KEY_</B>RIGHT) <BR> { <BR> menu+=1; <BR> if(menu>atoi(param[0][0])) menu=1; <BR> items=draw_menu(menu); <BR> return scroll_menu(items,menu); <BR> } <BR> } <BR> else if (key==ESCAPE || key=='0' || key=='q') <BR> { <BR> delete_menu(items,count+1); <BR> return -1; <BR> } <BR> else if (key==<B style='color:black;background-color:#99ff99'>ENTER</B>) <BR> { <BR> delete_menu(items,count+1); <BR> return selected; <BR> } <BR> } <BR>} <BR><BR><BR>message(char *ss) <BR>{ <BR> wbkgd(messagebar,COLOR_PAIR(2)); <BR> wattron(messagebar,COLOR_PAIR(3)); <BR> mvwprintw(messagebar,0,0,"%80s"," "); <BR> mvwprintw(messagebar,0,(80-strlen(ss))/2-1,"%s",ss); <BR> wattroff(messagebar,COLOR_PAIR(3)); <BR> wrefresh(messagebar); <BR>} <BR><BR><BR>int main(int argc,char **argv) <BR>{ <BR> int key; <BR> int selected_item; <BR> char ss[81]; <BR> WINDOW **menu_items; <BR><BR> if(get_param(argv[0])) <BR> { <BR> printf("\n打开配置文件 %s.conf 错!\n",argv[0]); <BR> return(-1); <BR> } <BR> <BR> init_<B style='color:black;background-color:#ff9999'>curses</B>(); <BR> bkgd(COLOR_PAIR(1)); <BR> menubar=subwin(stdscr,1,80,1,0); <BR> messagebar=subwin(stdscr,1,80,24,0); <BR> temp=subwin(stdscr,22,80,2,0); <BR> temp1=subwin(stdscr,20,78,3,1); <BR> strcpy(ss,"通用菜单生成程序"); <BR> mvwprintw(stdscr,0,(80-strlen(ss))/2-1,"%s",ss); <BR> draw_menubar(menubar); <BR> message("请按数字键选择相应菜单. ESC 或'0'键退出."); <BR> box(temp,ACS_VLINE,ACS_HLINE); <BR> refresh(); <BR><BR> do { <BR> key=getch(); <BR> if(isdigit(key)&&key>'0'&&key<=atoi(param[0][0])+'0') <BR> { <BR> werase(messagebar); <BR> wrefresh(messagebar); <BR> menu_items=draw_menu(key-'0'); <BR> selected_item=scroll_menu(menu_items,key-'0'); <BR> touchwin(stdscr); <BR> refresh(); <BR> } <BR> } while (key!=ESCAPE && key!='q' && key!='0'); <BR> <BR> delwin(temp1); <BR> delwin(temp); <BR> delwin(menubar); <BR> delwin(messagebar); <BR> endwin(); <BR> return(0); <BR>} <BR></P>
<P></P>
<P><SPAN class=postbody><FONT size=2>菜单参数配置文件 menu.conf <BR><BR></FONT></SPAN>
<TABLE cellSpacing=1 cellPadding=3 width="90%" align=center border=0>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -