漢字圖形窗口界面設(shè)計方法及函數(shù)編程技巧_第1頁
漢字圖形窗口界面設(shè)計方法及函數(shù)編程技巧_第2頁
漢字圖形窗口界面設(shè)計方法及函數(shù)編程技巧_第3頁
漢字圖形窗口界面設(shè)計方法及函數(shù)編程技巧_第4頁
漢字圖形窗口界面設(shè)計方法及函數(shù)編程技巧_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、漢字圖形窗口界面方案要領(lǐng)及函數(shù)編程本領(lǐng)摘要該文討論了漢字圖形窗口界面方案的一樣平常要領(lǐng),給出了窗口天生,窗口辦理,菜單天生與辦理,鼠標(biāo)與鍵盤辦理等實現(xiàn)的子函數(shù),并給出了部門語言源步伐。這些函數(shù)的組合可以方案出富厚的漢字圖形窗口界面。一、圖形窗口方案函數(shù)重要包羅窗口天生與辦理函數(shù),如窗口天生,窗口翻開,窗口封閉,窗口刪除等。1.窗口布局界說要領(lǐng)typedefstrutginintx0,y0,x1.y1;/*窗口位置及巨細*/intbrder;/*窗口邊框范例*/intlr;/*窗口配景顏色*/harstate;/*窗口狀態(tài)標(biāo)記*/harfar*buffer;/*指向窗口緩沖區(qū)指針*/gin;在g

2、in中,brder為窗口的邊框?qū)傩?可以按照差異要求方案出多種邊框范例業(yè),以美化窗口界面。2.窗口子函數(shù)窗口天生子函數(shù):gin*ginreate(x0,y0,x1,y1,brder,lr)intx0,y0,x1,y1;/*窗口位置及巨細*/brderdebrder;/*窗口邊框范例*/intlr;/*窗口配景顏色*/窗口表現(xiàn)子函數(shù):gindisplay(gin*)為用ginreate天生的窗口指針,即此函數(shù)畫出窗口。窗口翻開子函數(shù):ginpen(gin*)此函數(shù)調(diào)用gindisplay來表現(xiàn)窗口,并存儲屏幕。窗口封閉子函數(shù):ginlse(gin*)此函數(shù)封閉已翻開的窗口,規(guī)復(fù)屏幕,但此窗口數(shù)據(jù)

3、還保存,可再次翻開。窗口刪除子函數(shù):ginkill(gin*)此窗口徹底掃除窗口,不成重新翻開。3.部門步伐下面給出實現(xiàn)上述成效的語言步伐/*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/*窗口為翻開狀態(tài)*/#definelse0/*窗口為封閉狀態(tài)*/#define

4、use0/*是否有鼠標(biāo)挪動*/*界說窗口邊框范例*/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();二、菜單窗口界面天生與辦理子函數(shù)1.菜單布局界說說明typedefstrutgenugin*;/*含有菜單的窗口*/har*hstring;/*菜單中漢字串指針*/intxnu;/*程度標(biāo)的目的菜單漫衍項*/intynu;/*垂直標(biāo)的目的菜單漫衍項*/inthzlr/*漢字顏色*/intn/*光標(biāo)位置*/intttal/*菜單總個數(shù)*/genu;2.菜單天生與辦理子函數(shù)菜單天生

8、子函數(shù):genu*enureate(x,y,xnu,ynu,brder,hzlr,blr,hstring)intx,y;/*菜單左上角位置*/intxnu,ynu;/*菜單在x,y標(biāo)的目的個數(shù)*/brderdebrder;/*菜單邊框范例*/inthzlr;/*漢字顏色*/intblr;/*菜單配景顏色*/har*hstring;/*漢字串*/菜單翻開子函數(shù):enupen(genu*)為用enugreate天生的菜單直針。菜單驅(qū)動子函數(shù):enudrive(genu*)此函數(shù)提供用鼠標(biāo)或鍵盤選擇菜單項的要領(lǐng)。菜單封閉子函數(shù):enulse(genu*)此函數(shù)封閉已翻開的菜單,規(guī)復(fù)屏幕,但此菜單數(shù)據(jù)

9、還保存,可再次翻開。菜單刪除子函數(shù):enukill(genu*)此菜單被徹底掃除,不成重新翻開。3.實現(xiàn)上述成效子函數(shù)的源步伐代碼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)為求串中菜單項個數(shù)的函數(shù),lngest(string)為求串中最長項長度的函數(shù)。別的子函數(shù)可參照窗口函數(shù)方案出,此處限于篇幅,不再給出。三、下拉式菜單方案要領(lǐng)有了第一,第二節(jié)的窗口方案及菜單方案函數(shù),可以很便利的界說出下拉式及彈出式菜單,菜單可以層層嵌套,主子干系及熱鍵可以自由界說,有了窗口及菜單函數(shù),可以組合方案出氣勢氣派迥異的應(yīng)用步伐界面。本節(jié)的子函數(shù)包羅:根菜單天生(主菜單)、下拉式菜單天生、菜單毗連、菜單初始化、菜單驅(qū)動、菜單封閉、菜單刪

11、除。1.下拉式菜單布局界說要領(lǐng)typedefstrutpenugenu*;/*界說菜單*/intpstate;/*下拉式菜單狀態(tài)*/intpid;/*菜單標(biāo)識碼*/strutpenu*father;/*界說父菜單*/strutpenu*sn/*界說子菜單*/harhtkeyaxsn+1;/*界說熱鍵*/penu;2.下拉式菜單天生與辦理子函數(shù)根菜單天生子函數(shù):penu*prt(pid,x,y,brder,hzlr,blr,hstring)intpid;/*根菜單標(biāo)識碼,一樣平常為000*/intx,y;/*菜單在x,y標(biāo)的目的個數(shù)*/brderdebrder;/*菜單邊框范例*/inthzlr

12、;/*漢字顏色*/intblr;/*菜單配景顏色*/har*hstring;/*漢字串*/下拉式菜單天生子函數(shù):penu*preate(pid,x,y,brder,hzlrblr,hstring參數(shù)寄義同上,pid值一樣平常取為100,200,300等,使用此函數(shù)可天生平凡彈出式菜單。菜單毗連子函數(shù):vidplink(penu*p1,intn,penu*p2)此函數(shù)創(chuàng)立兩個菜單p1,p2之間的主次干系,p1為父菜單,p2為子菜單,實行此菜單,那么把p2掛在了p1的第n個菜單項上。下拉式菜單初始化子函數(shù):pint();菜單封閉子函數(shù):plse();菜單刪除子函數(shù):pkill();菜單中界說熱鍵子

13、函數(shù):htkey(penu*p1,intn,intvasii);penu*p1;/*下拉式菜單p1*/intn;/*菜單p1中菜單個數(shù)*/intvasii;/*界說熱鍵的asii碼值*/使用此函數(shù)可界說彈出式菜單p1中恣意項n的鍵盤熱鍵,該鍵的asii碼值為vasii。3.實現(xiàn)上述成效子函數(shù)的源步伐代碼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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論