首页 / 软件开发 / C语言 / 用C编写类Windows菜单
用C编写类Windows菜单2010-04-30在开发程序时,程序的界面、开放性是两个非常重要的方面,目前,在Unix系统下运行的程序的界面大都比较死板,而且,在进行功能扩充时也不是很方便。那么,能不能设计一个象Windows那样能够按照用户要求随意调整界面,功能扩充方便的程序呢?答案是肯定的。笔者通过实践,设计了一个菜单程序,使用户在对菜单的显式样式不满意时,只需通过对菜单参数文件进行操作即可完成对菜单位置、宽度、长度、是否有边框等进行调整;在用户需要进行功能扩充时,也无须改动源程序,只须对参数文件进行操作就可将新增功能挂到菜单上。 一参数文件说明 本程序需要借肋两个参数文件来实现: (1)、对菜单中每一项参数进行说明的文件(menu.def),它格式如下所述:!所属菜单代号!项顺序号!菜单项名称!外挂程序名称!下级菜单代号! 说明:1、如菜单代号为"0",则表示此项属于主菜单2、如外挂程序名称为"0",则表示此菜单项对应的过程在菜单程序内部或对应于一个子菜单;3、如下级菜单代号为"0",则表示此菜单项无下级子菜单;4、项顺序号同时可作为菜单热键使用。假如文件menu.def中有下面这一行:!0!3!格式化磁盘!format /dev/rfd0135ds18!0!它表示主菜单的第三项为格式化磁盘,它对应的执行过程为 format /dev/rfd0135ds18,本项无子菜单。如果用户想把自己编的实现查询功能程序XXX挂到本程序主菜单第4项上,则可在menu.def中增加下面这一行:!0!4!查询!XXX!0!(2)、对各菜单参数进行说明文件(menu.conf),其格式如下所述:!菜单代号!上一级菜单代号!边框标志!菜单宽度!菜单行数!菜单列数!起始横坐标!起始纵坐标!说明:1、边框标志为"0"表示无框,为"1"表示有边框;2、上级菜单代号为"-1",表示无上级菜单;3、如菜单代号为"0",表示主菜单。当用户对菜单显示样式不满意时,可通过调整此文件设计个性化的界面。