汉字图形窗口界面设计方法及函数编程技巧_第1页
汉字图形窗口界面设计方法及函数编程技巧_第2页
汉字图形窗口界面设计方法及函数编程技巧_第3页
汉字图形窗口界面设计方法及函数编程技巧_第4页
汉字图形窗口界面设计方法及函数编程技巧_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汉字图形窗口界面方案要领及函数编程本领摘要该文讨论了汉字图形窗口界面方案的一样平常要领,给出了窗口天生,窗口办理,菜单天生与办理,鼠标与键盘办理等实现的子函数,并给出了部门语言源步伐。这些函数的组合可以方案出富厚的汉字图形窗口界面。一、图形窗口方案函数重要包罗窗口天生与办理函数,如窗口天生,窗口翻开,窗口封闭,窗口删除等。1.窗口布局界说要领typedefstrutginintx0,y0,x1.y1;/*窗口位置及巨细*/intbrder;/*窗口边框范例*/intlr;/*窗口配景颜色*/harstate;/*窗口状态标记*/harfar*buffer;/*指向窗口缓冲区指针*/gin;在g

2、in中,brder为窗口的边框属性,可以按照差异要求方案出多种边框范例业,以美化窗口界面。2.窗口子函数窗口天生子函数:gin*ginreate(x0,y0,x1,y1,brder,lr)intx0,y0,x1,y1;/*窗口位置及巨细*/brderdebrder;/*窗口边框范例*/intlr;/*窗口配景颜色*/窗口表现子函数:gindisplay(gin*)为用ginreate天生的窗口指针,即此函数画出窗口。窗口翻开子函数:ginpen(gin*)此函数调用gindisplay来表现窗口,并存储屏幕。窗口封闭子函数:ginlse(gin*)此函数封闭已翻开的窗口,规复屏幕,但此窗口数据

3、还保存,可再次翻开。窗口删除子函数:ginkill(gin*)此窗口彻底扫除窗口,不成重新翻开。3.部门步伐下面给出实现上述成效的语言步伐/*indsreate*/#inludestdi.h#inludeds.h#inludestdilb.h#inludestring.h#inludeni.h#inludegraph.h#definer0 x0d#definees0 x1b#defineleft0 x4b#defineright0 x4d#defineup0 x4d#definedn0 x50#definepen1/*窗口为翻开状态*/#definelse0/*窗口为封闭状态*/#define

4、use0/*是否有鼠标挪动*/*界说窗口边框范例*/typedefenunbrder,/*平凡窗口,体系默认值*/tbrder,/*窗口有凸边框范例*/brder,/*窗口有凹边框范例*/tbrder,/*窗口有凸凹边框范例*/tbrder,/*窗口有凹凸边框范例*/brder,/*窗口有汉字边框范例*/./*别的窗口范例*/brderde;gin*ginreate(x0,y0,x1,y1,brder,lr)intx0,y0,x1,y1;brderdebrder;intlr;gin*;=all(sizef(gin);-x0=x0;-y0=y0;-x1=x1;-y1=y1;if(brder=nb

5、rder)-brder=nbrder;if(brder=brder)-brder=brder;if(brder=tbrder)-brder=tbrder;if(brder=tbrder)-brder=tbrder;if(brder=tbrder)-brder=tbrder;if(brder=brder)-brder=brder;-le=lr;-buffer=null;return();vidgindisplay(gin*)if(-brder=nbrder)dragin(,nbrder);if(-brder=brder)dragin(,brder);if(-brder=tbrder)dragin

6、(,tbrder);if(-brder=tbrder)dragin(,tbrder);if(-brder=tbrder)dragin(,tbrder);if(-brder=brder)dragin(,brder);vidginpen(gin*)if(-state=pen)return0;-buffer=(harfar*)all(unsignedint)-iagesize(-x0,-y0,-x1,-y1)-getiage(-x0,-y0,-x1,-y1,-buffer);-state=pen;gindisplay();vidginlse(gin*)if(-state=lse)return0;-p

7、utiage(-x0,-y0,-buffer,-gpset);free(harfar*)-buffer);-state=lse;vidginkill(gin*)if(-state=pen)ginlse();free();二、菜单窗口界面天生与办理子函数1.菜单布局界说说明typedefstrutgenugin*;/*含有菜单的窗口*/har*hstring;/*菜单中汉字串指针*/intxnu;/*程度标的目的菜单漫衍项*/intynu;/*垂直标的目的菜单漫衍项*/inthzlr/*汉字颜色*/intn/*光标位置*/intttal/*菜单总个数*/genu;2.菜单天生与办理子函数菜单天生

8、子函数:genu*enureate(x,y,xnu,ynu,brder,hzlr,blr,hstring)intx,y;/*菜单左上角位置*/intxnu,ynu;/*菜单在x,y标的目的个数*/brderdebrder;/*菜单边框范例*/inthzlr;/*汉字颜色*/intblr;/*菜单配景颜色*/har*hstring;/*汉字串*/菜单翻开子函数:enupen(genu*)为用enugreate天生的菜单直针。菜单驱动子函数:enudrive(genu*)此函数提供用鼠标或键盘选择菜单项的要领。菜单封闭子函数:enulse(genu*)此函数封闭已翻开的菜单,规复屏幕,但此菜单数据

9、还保存,可再次翻开。菜单删除子函数:enukill(genu*)此菜单被彻底扫除,不成重新翻开。3.实现上述成效子函数的源步伐代码genu*enureate(x,y,xnu,ynu,brder,hzlr,blr,hstring)intx,y,xnu,ynu;brderdebrder;inthzlr,blr;har*hstring;gin*,genu*;=all(sizef(genu);-=hstring=hstring;-=xnu=xnu;-=ynu=ynu;-=hzlr=hzlr;-=n=1-=ttal=nuber_f_enu(-=hstring);=(gin*)ginreate(x,y,x

10、+xnu*lngest(hstring),y+(ynu-1)+0,brder,blr);-=return;此中,nuber_f_enu(string)为求串中菜单项个数的函数,lngest(string)为求串中最长项长度的函数。别的子函数可参照窗口函数方案出,此处限于篇幅,不再给出。三、下拉式菜单方案要领有了第一,第二节的窗口方案及菜单方案函数,可以很便利的界说出下拉式及弹出式菜单,菜单可以层层嵌套,主子干系及热键可以自由界说,有了窗口及菜单函数,可以组合方案出气势气派迥异的应用步伐界面。本节的子函数包罗:根菜单天生(主菜单)、下拉式菜单天生、菜单毗连、菜单初始化、菜单驱动、菜单封闭、菜单删

11、除。1.下拉式菜单布局界说要领typedefstrutpenugenu*;/*界说菜单*/intpstate;/*下拉式菜单状态*/intpid;/*菜单标识码*/strutpenu*father;/*界说父菜单*/strutpenu*sn/*界说子菜单*/harhtkeyaxsn+1;/*界说热键*/penu;2.下拉式菜单天生与办理子函数根菜单天生子函数:penu*prt(pid,x,y,brder,hzlr,blr,hstring)intpid;/*根菜单标识码,一样平常为000*/intx,y;/*菜单在x,y标的目的个数*/brderdebrder;/*菜单边框范例*/inthzlr

12、;/*汉字颜色*/intblr;/*菜单配景颜色*/har*hstring;/*汉字串*/下拉式菜单天生子函数:penu*preate(pid,x,y,brder,hzlrblr,hstring参数寄义同上,pid值一样平常取为100,200,300等,使用此函数可天生平凡弹出式菜单。菜单毗连子函数:vidplink(penu*p1,intn,penu*p2)此函数创立两个菜单p1,p2之间的主次干系,p1为父菜单,p2为子菜单,实行此菜单,那么把p2挂在了p1的第n个菜单项上。下拉式菜单初始化子函数:pint();菜单封闭子函数:plse();菜单删除子函数:pkill();菜单中界说热键子

13、函数:htkey(penu*p1,intn,intvasii);penu*p1;/*下拉式菜单p1*/intn;/*菜单p1中菜单个数*/intvasii;/*界说热键的asii码值*/使用此函数可界说弹出式菜单p1中恣意项n的键盘热键,该键的asii码值为vasii。3.实现上述成效子函数的源步伐代码penu*rp,*p;penu*prt(pid,x,y,brder,hzlr,blr,hstring)intpid,x,y;brderdebrder;inthzlr,blr;har*hstring;penu*p;inti;rp=p=all(sizef(penu);p-pstate=lse;p-pid=pid;p-=enureate(x,y,nu_f_enu(hstring),1,brder,hzlr,blr,hstring);p-father=null;fr(i=1;iaxsn+1;i+)p-sni=null;p-htkeyi=0;return(p);vidplink(penu*p1,intn,penu*p2)p1-snn=p2;p2-father=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论