chvjc 发表于 2007-9-14 16:12

这个程序到底哪里错了....怎么老提示我声明错误

<P>#include "graphics.h"<BR>#include "conio.h"<BR>#include "bios.h"<BR>#include "process.h"<BR>#include "string.h"<BR>#include "stdio.h"</P>
<P><BR>#define  UP      328<BR>#define  DOWN    336<BR>#define  ALT_X   301<BR>#define  ENTER   13</P>
<P>void Slt_MMenu(void);<BR>void Slt_SMenu(void);<BR>void SltMenu(void);<BR>void Draw_MMenu(void);<BR>void Draw_SMenu(void);<BR>void Screen(void);<BR>void Wind(int,int,int,int,int,int,int,int,int);<BR>void Quit(void);<BR>int GetKey(void);<BR>void Begin(void);</P>
<P><BR>/*设置全局变量*/<BR>int  Mn = 0;                      /* 控制主菜单的选项         */<BR>int  smm[1];                      /* 各项主菜单下的子菜单选项 */<BR>int  SbNum =7;     /* 各项主菜单的子菜单项数   */<BR>int  Sbwid =11; /* 各项子菜单的窗口宽度     */<BR>int  Sbx = 5;    /* 各项子菜单的X坐标        */<BR>int  key = 0;                     /* 选择的键                 */</P>
<P>char Buffer[1024];          /* 缓冲区 */<BR>char *Main[1]={"文件"};<BR>/* 各个子菜单名称 */<BR>char *Sub[7]={"新建","打开","保存","另存为","页面设置","打印","退出"};<BR>/* 主程序部分的函数调用 */<BR>int main()<BR>{<BR>    window(1,1,80,25);<BR>    textattr(0x17);<BR>    clrscr();<BR>    window(1,1,80,25);<BR>    Draw_MMenu();<BR>    Begin();<BR>    Draw_SMenu();<BR>    SltMenu();<BR>    Quit();<BR>    return(0);<BR>}<BR>void Begin(void)<BR>{<BR>    while(GetKey()==ENTER)<BR>    {<BR>         Draw_SMenu();<BR>        SltMenu();<BR>    }<BR>}<BR>void Draw_MMenu(void)/* 绘画主菜单部分 */<BR>{<BR>    int n;<BR>    window(1,1,80,25);/* 窗口设定,定位基本的25*80大小 */<BR>    textattr(0x3f);<BR>    <BR>    <BR>        gotoxy(5,1);<BR>        cputs(Main[0]);<BR>        <BR>    <BR>    gotoxy(5,1);<BR>    textattr(0x17);<BR>    cputs(Main[Mn]);<BR>}</P>
<P>void Draw_SMenu(void)<BR>{<BR>    int i;<BR>    gettext(3,2,16,7,Buffer);/* 储存范围从(2,2)到窗体长度,窗体宽度的内容到缓冲区内 */<BR>    Wind(3,2,14,10,1,2,4,14,9);<BR>    textattr(0x6a);<BR>    i=0;<BR>    while(i&lt;7)<BR>    {<BR>        gotoxy(2,i+1);<BR>        cputs(Sub[i]);<BR>        i++;<BR>    }</P>
<P>}<BR>void SltMenu(void)<BR>{<BR>    while(key!=ALT_X)<BR>    {<BR>        key=GetKey();<BR>        if(key==UP||key==DOWN)<BR>            Slt_SMenu();<BR>            }<BR>    return;<BR>}<BR>void Slt_MMenu(void)<BR>{<BR>    window(1,1,80,25);<BR>    textattr(0x3e);<BR>    gotoxy(5,1);<BR>    cputs(Main[0]);<BR>    textattr(0x31);<BR>    puttext(3,2,16,7,Buffer);<BR>    textattr(0x3e);<BR>    gotoxy(5,1);<BR>    cputs(Main[0]);<BR>    Draw_SMenu();<BR>}</P>
<P>void Slt_SMenu(void)<BR>{<BR>    textattr(0x3f);<BR>    gotoxy(2,1+smm[Mn])<BR>    cputs(Sub[smm[Mn]]);<BR>    if(key==UP)<BR>    {<BR>        if(smm[Mn]==0)<BR>            smm[Mn]=0;<BR>        else<BR>            smm[Mn]=smm[Mn]-1;<BR>    }<BR>    if(key==DOWN)<BR>    {<BR>        if(smm[Mn]==SbNum-1)<BR>            smm[Mn]=SbNum-1;<BR>        else<BR>            smm[Mn]=smm[Mn]+1;<BR>    }<BR>    textattr(0x1e);<BR>    gotoxy(2,smm[Mn]+1);<BR>    cputs(Sub[smm[Mn]]);<BR>}</P>
<P><BR>int GetKey(void)<BR>{<BR>  int key;<BR>  while(bioskey(1)==0);<BR>  key=bioskey(0); <BR>  key=key&amp;0xff ? key&amp;0xff:key&gt;&gt;8; <BR>  return(key); <BR>} </P>

<P><BR>/* 窗口类型函数                          */<BR>/* outline 为轮廓有无,0无,1单框,2双框 */<BR>/* BK  为阴影控制                        */<BR>/* Wcol为字体颜色             */<BR>/* Bcol为背景颜色             */<BR>/* Bgcl为阴影颜色              */<BR>void Wind(int x1,int y1,int x2,int y2,int outline,int BK,int Wcol,int Bcol,int Bgcl)<BR>{<BR>   int i;<BR>   int c[2][6]={{0xda, 0xc4, 0xbf, 0xb3, 0xc0, 0xd9},    /* 对应ASCII码单线字符 */<BR>    {0xc9, 0xcd, 0xbb, 0xba, 0xc8, 0xbc}};   /* 对应ASCII码双线字符 */<BR>   textcolor(Wcol);<BR>   textbackground(Bcol);<BR>   window(x1, y1, x2, y2);<BR>   clrscr();<BR>   if (outline)                  /* 有边框线 */<BR>   {<BR>      window(1, 1, 80, 25);<BR>    gotoxy(x1, y1);<BR>      putch(c[outline-1][0]);<BR>    for (i = x1+1; i &lt; x2; i++)<BR>      putch(c[outline-1][1]);<BR>      putch(c[outline-1][2]);<BR>      for (i = y1+1; i &lt; y2; i++)<BR>      {<BR>     gotoxy(x1, i);<BR>     putch(c[outline-1][3]);<BR>     gotoxy(x2, i);<BR>     putch(c[outline-1][3]);<BR>      }<BR>      gotoxy(x1, y2);<BR>      putch(c[outline-1][4]);<BR>      for (i = x1+1; i &lt; x2; i++)<BR>     putch(c[outline-1][1]);<BR>      putch(c[outline-1][5]);<BR>   }<BR>   if (BK!=0)              /* 有阴影背景 */<BR>   {<BR>      textcolor(Bgcl);<BR>      textbackground(0);<BR>      for (i = y1+1; i &lt; y2+1; i++)<BR>      {<BR>     gotoxy(x2+1, i);<BR>     putch('\xb1');<BR>      }<BR>      for (i = x1+1; i &lt; x2+2; i++)<BR>      {<BR>     gotoxy(i, y2+1);<BR>     putch('\xb1');<BR>      }<BR>   }<BR>   window(x1+1, y1+1, x2-1, y2-1);<BR>}</P>
<P>void Quit(void)<BR>{<BR>    textbackground(0);<BR>    textcolor(5);<BR>    window(1,1,80,25);<BR>    exit(0);<BR>}</P>
<P>是tc下实现类tc的西文下拉菜单的实现</P>


neverTheSame 发表于 2007-9-15 02:26

LZ给出编译器给出的错误.

neverTheSame 发表于 2007-9-15 11:37

void Slt_SMenu(void)<BR>{<BR>    textattr(0x3f);<BR>    gotoxy(2,1+smm[Mn]) <FONT color=#f70909><STRONG><U>;<BR></U></STRONG></FONT>    cputs(Sub[smm[Mn]]);<BR>....

页: [1]

编程论坛