課程設(shè)計報告-日歷管理器_第1頁
課程設(shè)計報告-日歷管理器_第2頁
課程設(shè)計報告-日歷管理器_第3頁
課程設(shè)計報告-日歷管理器_第4頁
課程設(shè)計報告-日歷管理器_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、蹙械工學院c+課程設(shè)計報告(2010 » 2011年度第二學期)日歷管理器的設(shè)計與實現(xiàn)專 業(yè)計算機科學與技術(shù)學生姓名班 級學 號2011年7月曰指導(dǎo)教師完成日期目 錄1概 述11.1課程設(shè)計目的11.2課程設(shè)計內(nèi)容12系統(tǒng)需求分析12.1系統(tǒng)目標12.2主體功能12.3開發(fā)環(huán)境23系統(tǒng)概要設(shè)計23.1系統(tǒng)的功能模塊劃分23. 2系統(tǒng)流程圖34系統(tǒng)詳細設(shè)計34.1系統(tǒng)主界面設(shè)計34.2計算當前日期模塊設(shè)計54. 3年份跳轉(zhuǎn)模塊設(shè)計54.4界面修改模塊模塊設(shè)計75測試75. 1測試方案75.2測試結(jié)果76小結(jié)8參考文獻10附錄11附錄1源程序清單11日歷管理器的設(shè)計與實現(xiàn)1概 述1.1課

2、程設(shè)計目的1、鞏i古i并加深學生對c+語言程序設(shè)計知識的理解;2、培養(yǎng)學生面向?qū)ο蟮某绦蛟O(shè)計思想,使學生認識面向過程和面向?qū)ο髢煞N 設(shè)計方法的區(qū)別;3、進一步掌握和應(yīng)用vc+ 6. 0集成開發(fā)環(huán)境;4、提高運用c+語言解決實際問題的能力;5、初步掌握開發(fā)小型實用軟件的基本方法,能獨立設(shè)計、實現(xiàn)具有實際功能 的小系統(tǒng);6、掌握書寫程序設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計實驗報告)。1.2課程設(shè)計內(nèi)容課程名稱:h歷管理器說明:模仿現(xiàn)實生活中的掛歷,顯示h歷。要求:1)當前頁以系統(tǒng)當前日期的刀份為準,顯示當前月的每一天(顯示出日及對 應(yīng)的星期兒),當系統(tǒng)h期變到下一月時,系統(tǒng)自動翻頁到下一月。2)可以實

3、現(xiàn)日期的加法運算,即在日期相加的菜單選項中增加日期加天數(shù), 結(jié)果為新日期。3)根據(jù)用戶輸入的年份,自動產(chǎn)生每個月的h期列表。包括輸入非法數(shù)據(jù)(如 負數(shù)、日期超過31天等情況)的識別顯示功能。4)自定義顯示日歷的形式,如顯示星期及英文形式的月份的功能2系統(tǒng)需求分析2. 1系統(tǒng)目標能模仿現(xiàn)實生活中的掛歷,顯示當前日期,口能實現(xiàn)日期的跳轉(zhuǎn)來方便用戶。2. 2主體功能1)當前頁以系統(tǒng)當前口期的月份為準,顯示當前月的每一天(顯示出口及對 應(yīng)的星期幾),當系統(tǒng)口期變到下一月時,系統(tǒng)自動翻頁到下一月。2)可以實現(xiàn)口期的加法運算,即在口期相加的菜單選項中增加口期加天數(shù), 結(jié)果為新口期。3)根據(jù)用戶輸入的年份,

4、自動產(chǎn)生每個刀的日期列表。包括輸入非法數(shù)據(jù)(如 負數(shù)、日期超過31天等情況)的識別顯示功能。2. 3開發(fā)環(huán)境visual c+ 6.03系統(tǒng)概要設(shè)計3.1系統(tǒng)的功能模塊劃分此次系統(tǒng)的功能模塊主要分為:當前日期計算模塊、日期跳轉(zhuǎn)模塊和界而修改 模塊。當前日期計算模塊:計算系統(tǒng)當前日期,并第一時間顯示岀來,方便用戶能第 一時間了解當前日期。日期跳轉(zhuǎn)模塊:主要針對用戶想查看其他年份的日期情況設(shè)計,用戶在想查看 某個年份口期的時候只需操作一下,輸入想查看的年份,該模塊便會位用戶顯示出 該年的日期情況。界面修改模塊:現(xiàn)代產(chǎn)品功能豐富,因為用戶的需求很多,該模塊旨在提供給 用戶更多的選擇空間。該模塊在內(nèi)部

5、提空多種界而顏色,用戶只需在需要時執(zhí)行操 作便可更換界面上某個位置顯示的顏色,大大增加軟件的趣味性。圖3-1系統(tǒng)功能模塊圖3. 2系統(tǒng)流程圖開始0計算當前日期圖3-2 系統(tǒng)流程圖4系統(tǒng)詳細設(shè)計4. 1系統(tǒng)主界面設(shè)計在該系統(tǒng)中我使用了 mfc對主界面進行編輯,主界面最顯眼的是日歷部分,在 日歷上方是菜單欄,可以提供一些操作的按鈕,實現(xiàn)該系統(tǒng)的多元功能。實際效果 如下圖所示:year color about.圖4-1菜單欄效果圖calender 2003 -匸區(qū)zcolorabout .januaryfebuarymarchasunmontuewed thufrisatsunmontuewed t

6、hufrisatsunmontuewed thufrisat123411567891011234567823456781213141516171891011121314159101112131415192021222324251617181920212216171819202122262728293031232425262728232425262728293031aprilmayjunesunmontuewed thufrisatsunmontuewed thufrisatsunmontuewed thufrisat123451231234567678910111245678910891011

7、 12131413141516171819111213141516171516171819202120212223242526181920212223242223242526272827282930252627282930312930julyaugustseptembersunmontuewedthufrisatsunmontuewed thufrisatsunmontuewed thufrisat12345121234566789101112345678978910 111213131415161718191011121314151614151617181920202122232425261

8、71819202122232122232425262727282930312425262728293028293031octubernovemberdecembersunmontuewed thufrisatsunmontuewed thufrisatsunmontuewed thufrisat12341123456567891011234567878910 11121312131415161718910111213141514151617181920192021222324251617181920212221222324252627廂中丿"od ,圖4-2系統(tǒng)主界面圖該系統(tǒng)中還會出

9、現(xiàn)一些輸入框和提示框,這些框如下圖:e enter year 11!下茨圖4-3處于編輯模式下的輸入框在這個編輯輸入框中的顯示“enter year!”的部件是一個標簽,起提示作用; 寫著“編輯”二字的框是個文本框,用來獲取用戶輸入的年份數(shù)據(jù);寫著“0k”和“cemcle”的兩個部件分別是兩個功能按鈕,在編碼完成后即可用來 實現(xiàn)操作。圖4-4編輯模式下的信息提示框4.2計算當前日期模塊設(shè)計該系統(tǒng)在這個模塊中建立了 ccalender類,并建立m cnday> m cnyear> m_nuseryear函數(shù)來調(diào)用系統(tǒng)當前日期以實現(xiàn)該模塊功能。該系統(tǒng)還建立了 dialogtime類,在

10、這個類中系統(tǒng)使用了 switch語句,建立了 m_szdays 7數(shù)組來對日期進行從周日到周六的排序,以此實現(xiàn)顯示出的日歷和我 們?;钪械娜諝v類似。要實現(xiàn)對日期的排列,首先需要對年份進行閏年的判斷,其 判斷流程圖如下圖:圖4-3判斷閏年流程圖4. 3年份跳轉(zhuǎn)模塊設(shè)計該系統(tǒng)在這個模塊中建立了 yeardialog類,在類中通過使用ddx_text> ddvjiinmaxutnt函數(shù)、調(diào)用m_nuseryear. m_cnyear 函數(shù)來實現(xiàn)日期跳轉(zhuǎn)到用戶 輸入的年份。要正確跳轉(zhuǎn)到目的年份首先需要確定目的年的第一天的口期,以此類 推可以推出全年的日期。流程圖如下:圖4-4判斷目的年份日期流程

11、圖4. 4界面修改模塊模塊設(shè)計該系統(tǒng)在這個模塊中在ccalender類里建立了 m_crwindow> m crmonths> m_crweekdays> m crdays、m crtoday、m crtodaysbox 多個函數(shù),各函數(shù)代表的是 相關(guān)界面部分顏色信息,系統(tǒng)首先給界面函數(shù)設(shè)置了初始值,又建立了 getwindowcolor()> getmonthscolor()> getweekdayscolor()> getdayscolor() > gettodaycolor ()、gettodaysboxcolor ()函數(shù)來獲取用戶操作后輸入的

12、值,以此改 變界面多個部分顏色,從而達到該模塊能修改界面的功能。5測試5.1測試方案運行該系統(tǒng):1、測試系統(tǒng)能否顯示當前日期;2、操作相應(yīng)按鈕,觀察能否準確跳轉(zhuǎn)到輸入的年份口歷表,且當輸入數(shù)據(jù)為 非法數(shù)據(jù)時能否出現(xiàn)提醒;3、能否更改界面顏色。5. 2測試結(jié)果1、能準確顯示當前h期,且以粉色突出顯示;julysunmon tuewed thufri1sat345678910111213141516171819202122232431252627282930圖5-1當前fi期顯示圖2、能跳轉(zhuǎn)到用戶輸入的年份,且當輸入非法數(shù)據(jù)時提醒;圖5-2年份跳轉(zhuǎn)提示窗口圖圖5-3非法數(shù)據(jù)提示框圖3、對于窗口、月

13、份、星期、當前日期等部分,用戶都可以實現(xiàn)對其顏色的更改操作。圖5-4界面顏色更改效果圖根據(jù)測試情況,以上測試均能有效實現(xiàn)功能,測試成功。6小結(jié)為期兩周的課程設(shè)計終于結(jié)束了。在這次的課程設(shè)計中我不但提升了自己查閱 資料的能力,也更加深入的了解和熟悉了 "c+軟件的使用和c+這門課程。事實上去年我們也做過一次類似的課程設(shè)計,那次的課程設(shè)計我以為是比較難 的了,那次實驗前的準備工作就耗費了我大量的時間和精力,沒想到這次試驗實驗 課題下來的時候,我才認識到我們的課程設(shè)計會越來越多,也會越來越難,這是我 們作為程序設(shè)計專業(yè)的學生必須去承受的,因為只有實踐操作才能不斷提升我們的 能力。我也認識到

14、了原來自己學習到的c+語言知識是那么片面,多么欠缺,這當 然也提升了我對專業(yè)知識更濃厚的興趣。在這次課程設(shè)計中我遇到的問題也是不斷而來,首先是源程序中的錯誤導(dǎo)致程 序無法運行,都是自己輸入程序時不小心導(dǎo)致的,這花費了我大量的時間去核對源 代碼,都是些標點的錯誤使用和大小寫的不區(qū)分,這給了我一次小小的教訓;其次 是功能的欠缺和不完善導(dǎo)致軟件功能的不理想,這直接影響到了這次課程設(shè)計的質(zhì) 量,為了完善功能,我不斷查閱資料并求助同學,最終將問題妥善解決。忙碌的課程設(shè)計就快結(jié)束了,這幾天的忙碌也讓我在放假前體驗了學習的緊張 氛圍,雖然自己的成果并沒有讓我感到滿意,但起碼讓我對自己有了一定的認識, 也敲響

15、了我的警鐘,提醒我要重視自己的專業(yè)課,不要懈怠,同時我也了解到其他 同學的幫助對自己的重要性。我以后我要更加認真的學習專業(yè)課程和做好課程設(shè) 計,以認真的態(tài)度去完成自己的學業(yè)。參考文獻1 譚浩強.c程序設(shè)計(第三版)m 北京:清華大學出版社,2005.2 譚浩強.c程序設(shè)計題解與上機指導(dǎo)(第三版)m 北京:清華大學出版社,2005.3 陳清華,朱紅.visual c+程序設(shè)計案例精選與編程指導(dǎo)m南京:東南大學出 版社,2003.4 董上海.圖像格式編程指南m.北京:清華大學出版社,1994.7 張岳新.visual c+程序設(shè)計基礎(chǔ)m蘇州:蘇州大學出版社,2000.8 陸潤民.c語言繪圖教程m北

16、京:清華大學出版社,1996.附錄1源程序清單# include<afxwin.h>#in cludehcale nder.h”int ccalender:m_cnday = 3;int ccalender: :m_cnyear = 2003; int ccalender:m_nuseryear = 2003; colorref ccalender: :m_crwindow colorref ccalender: :m_crmonthscolorref ccalender: :m_crweekdays/wednesday/current year=rgb(255,255,255);

17、=rgb(0 ,0 ,255);=rgb(0 ,255,0 );colorref ccalender: :m_crdays = rgb(255,0 ,0 );colorref ccalender: :m_cr7oday = rgb(255,0 ,0 );colorref ccalender: :m_crlodaysbox = rgb(255,255,255);/ccale nder: ccale nder()m_nuseryear = m_cnyear;/void ccalender:setyear(int nyear=2003)int ndiff = 0;int nleapyear = 0;

18、int i = 0;m_n useryear = n year;m_cnday = 3; /wednesday 1st jan 2003if( m_cnyear > nyear)ndiff = m_cnyear - nyear;for( i=nyear; i<m_cnyear; i+ )if( i%4 = 0 )n leapyear+;ndiff += n leapyear;ndiff = ndiff % 7;for( i=ndiff; i>=l; i)m_cnday-;if( m_cnday<0 )m_cnday = 6;else if( m_cnyear <

19、nyear)ndiff = nyear - m_cnyear;for( i=m_cnyear; ivnyear; i+ ) if( i%4 = 0 )n leapyear+;ndiff += n leapyear;ndiff = ndiff % 7;for( i=ndiff; i>=l; i)m_cn day+;if( m_cnday >= 7 )m_cnday = 0;/int ccalender:getyear()return m_nllseryear;/void ccalender:showday(cdc *d)int nx = 5;int ny = 50;int i,j,k

20、;i = j = k = 0;cstring m_szdays7;m_szdays0 = nsunh;m_szdaysl = hmonh;m_szdays2 = ” tue”;m_szdays3 = "wed"m_szdays4 = ” thu”;m_szdays5 = hfri"m_szdays6 = hsatf,;d->setbkmode(transparent);d->setlextcolor(m_crdays);for( i=0; i<4; i+ )for( j=0; j<3; j+ )for( k=0; k<7; k+ )d

21、->textout(nxznxm_szdayskz3); nx += 35;nx += 23;nx = 5;ny += 185;;/void ccalender:showmonth(cdc *d)cfont myfont;myfont.c reatefont(20,10,0,0,0,0,0,0,0,000,0, "arial”); d->selectobject(&m yfont);d->setbkmode(transparent);d->seftextcolor(m_crmonths);d->textout(85 ,22 /january11)

22、; d->textout(352z22 /'febuary"); d->textout(632z22,“march");d->textout(103z208,"april");d>textout(370,208,”may”); d->textout(635z208znjunen);d->lextout(103/392z"july"); d->textout(360z392z"august"); d>textout(615,392,"september

23、");d->textout(85 ,578,“octuber”); d>textout(345,578,"november"); d->textout(615z578,"december");/void ccalender:showcalender(cdc *d)int i,jzk,count;int x = 5;int y = 82;int curday;int curmonth;int month;char str3;int m_nmonths12;ctime t = ctime:getcurrenttime();curd

24、ay = t.getday();curmonth = t.getmonth();m_nmonths0= 31;m_nmonthsl=(m_nuseryear%4 = 0 )? 29 : 28;m_nmonths2= 31;m_nmonths3=30;m_nmonths4= 31;m_nmonths5=30;m_nmonths6 = 31; m_nmonths7 = 31; m_nmonths8 = 30; m_nmonths9 = 31; m_nmonths10 = 30; m_nmonthsll = 31;count = i = j = k = 0;d->setbkmode(trans

25、parent);month=1;for(j=o; j<4; j+ )for( k=0; k<3; k+ )x = 5; y =82;x = 270; y =82;x = 540; y =82;x = 5; y =265;x = 270; y =265;x = 540; y =265;x = 5; y =448;x = 270; y =448;x = 540; y =448;x = 5; y =631;x = 270; y =631;x = 540; y =631;if(j=0&& k=0 ) else if( j=0&& k=l ) else if(

26、 j=0&& k=2 ) else if( j=l && k=0 ) else if( j=l && k=l) else if( j=l && k=2 ) else if(j=2 && k=0 ) else if( j=2 && k=l ) else if(j=2 && k=2 ) else if(j=3 && k=0 ) else if( j=3 && k=l ) else if(j=3 && k=2 ) x += m_cnday*3

27、5;for( i=l; i<=m_nmonthscount; i+ )if( curday = i && curmonth = month ) d->settextcolor( m_crfbday); sprintf(str;"%3d"zi); d->textout(xzy,str;strlen(str);elsed->settextcolor( (m_cnday=o)? m_crweekdays : rgb(o,o,o); sprintf(str;,%3d,zi);d->textout(x,y,str;strlen(str);

28、 x+=35;m_cn day+;if( m_cnday>=7 )m_cnday = 0;if( k=0 ) x=5;if( k=l )x=270;if( k=2 ) x=540; y+=20;count+;mon th+;/void ccalender:setdayscolor(colorref crcolor) m_crdays = crcolor; /void ccalender:setmonthscolor(colorref crcolor)m_cm onths = crcolor; /void ccalender:setlodaycolor(colorref crcolor)

29、mcrloday = crcolor; /void ccalender:setlodaysboxcolor(colorref crcolor) mcrlodaysbox = crcolor; / void ccalender:setwindowcolor(colorref crcolor) m_crwindow = crcolor; /void ccalender:setweekdayscolor(colorref crcolor) m_crweekdays = crcolor; /colorref ccalender:getdayscolor() return m_crdays; /colo

30、rref ccalender:getmonthscolor() return m_crmonths; /colorref ccalender:gettodaycolor()return m_crtoday; /colorref ccalender:gettodaysboxcolor()return m_crtodaysbox; /colorref ccalender:getwindowcolor()return m_crwindow; /colorref ccalender:getweekdayscolor()return m_crweekdays; /#ifndef calender_h#d

31、efine calender_h class ccalenderprivate:static int m_cnday;static int m_cnyear;static int m_nuseryear;static colorref m_crwindow;static colorref m_crmonths;static colorref mcrweekdays;static colorref m_crdays;static colorref m_crtoday;static colorref m_crtodaysbox;public:ccale nder();void setyear(in

32、t nyear);int getyear();void showday(cdc *d);void showmonth(cdc *d);void showcalender(cdc *d);void setwindowcolor(colorref crcolor);void setmonthscolor(colorref crcolor);void setweekdayscolor(colorref crcolor);void setdayscolor(colorref crcolor);void settodaycolor(colorref crcolor);void settodaysboxc

33、olor(colorref crcolor);colorref getwindowcolor();colorref getmonthscolor();colorref getweekdayscolor();colorref getdayscolor();colorref gettodaycolor();colorref gettodaysboxcolor();# endif#inelude hresource.hhclass dialogtime:public cdialogpublic:dialogtime(int n):cdialog(n)bool oninitdialog()return

34、 cdialog:oninitdialog();void dodataexchange(cdataexchange *pdx)cdialog:dodataexchange(pdx);cedit *e = (cedit*)getdlgitem(idc_editl);char sday10;char smonthflo;char str50;int n;ctime t = ctime:getcurrenttime();n 二 t.getdayofweek();swltch( n)case 1:sprintf(sday/%stsunday“); break;case 2: sprintf(sday/

35、"%s"z"monday"); break;case 3: sprintf(sday/%s:tuesday”); break;case 4: sprintf(sdayz"%s"z"wednesday");break;case 5: sprintf(sday/%s:thursay”); break;case 6: sprintf(sday;'%s"z"fnday"); break;case 7: sprintf(sdayz"%s"z"saturday

36、"); break;n = t.getmonth();switch( n)case 1:sprintf(smonth/%s”/january”);break;case 2:sprintf(smonth/wstfebuary1);break;case 3:sprintf(smonth/l%s,7,marchh);break;case 4 : sprintf(smonthz"%s"z"april");break;case 5:sprintf(smonth/%stmay”);break;case 6:sprintf(smonth/l%s,7,june

37、h);break;case 7 : sprintf(smonthz"%s"z"july");break;case 8:sprintf(smonth/l%s,l/,augustn);break;case 9:sprintf(smonth/,%s,7,september"); break;case 10: sprintf(smonthr%stoctubel); break; case 11: sprintf(smonth/%stnovembel); break; case 12: sprintf(smonth/,%smzndecembern); b

38、reak;sprintf(str;"%sz %s %dz%d %d:%d:%d"zsdayzsmonthztgetday(),tgetyear()£gethoiir(),t.getminute()zt.getsecond(),t.getsecond();cstring today = str;ddx_text(pdxzidc_editlztoday);;#include <afxwin.h>#include "mydoc.h"#include hmyframe.hh#include t,myview.h11#inelude ,mya

39、pp.hh#include "calender.h"#inelude "resource.h“ myapp a ;bool myapp:initlnstance()cruntimeclass *d, *f, *v ;d = runtime_class ( mydoc );f = runtime_class ( myframe );v = runtime_class ( myview );csingledoclemplate *t;t = new csingledoclemplate (idr_menu1, d, t v );adddoctemplate (t);c

40、commandlineinfo c ; parsecommandline ( c );if ( iprocessshellcommand ( c ) return false ;return true;class myapp : public cwinapppublic :bool initlnstance();#include "resource.h“ class mydialog:public cdialogpublic:mydialog(int n):cdialog(n)/*/#include <afxwin.h>#inelude <afxdlgs.h>

41、#include "mydoc.h"#include "mydialog.h"#include "yeardialog.h"#include "dialogtime.h"#inelude "resource.h”implement_dyncreate ( mydoc, cdocument)begin_message_map(mydoczcdocument)on_command_range(40005,40009,oncolor)on_command_range(40005,40010,on todaybo

42、x)on_command(40011,restoredefault)on_command(40001,onprevious)on_command(40002zonnext)on_command(40003zoncurrent)on_command(40004zonshow)on_command(40012zonabout)end_message_map() void mydoc:oncolor(int id)ccolordialog cd;ccalender cal;if( cd.domodal() = idok )colorref crcolor = cd.getcolor();switch

43、(id)case 40005:cal.setwindowcolor(crcolor);break;case 40006:cal.setmonthscolor(crcolor);break;case 40007:cal.setweekdayscolor(crcolor);break;case 40008:cal.setdayscolor(crcolor); break;case 40009:cal.settddaycolor(crcolor); break;case 40010:cal.settddaysboxcolor(crcolor); break;updateaiiviews(o);voi

44、d mydoc: :restoredefault()ccalender cal;cal.setwindowcolor(rgb(255z255z255);cal.setmonthscolor(rgb(0 z0 ,255);cal.setweekdayscolor(rgb(0 ,255,0 );cal.setdayscolor(rgb(255z0 ,0 );cal.settodaycolor(rgb(255z0 z0 );cal.settodaysboxcolor(rgb(255z255,255);updateaiiviews(o);void mydoc:onp佗vious()cal.setyea

45、r(cal.getyear()-l);updateaiiviews(o);void mydoc:onnext()cal.setyear(cal.getyear()+l);updateaiiviews(o);void mydoc:oncurrent()cal.setyear(2003);updateaiiviews(o);void mydoc:onabout()mydialog d(idd_dialogl);d.domodal();void mydoc:onshow()yeardialog d(idd_dialog2);if( d.domodal() = idok )cal.setyear(d.

46、getyear();updateaiiviews(o);void mydoc:ontodaybox()dialogtime d(idd_dialog3);d.domodal();#include"calender.h"class mydoc : public cdocumentdeclare_dyncreate ( mydoc )private:ccalender cal;public:declare_message_map() void oncolor(int id);void restoredefault();void onprevious();void onnext(

47、);void oncurrent();void onshow();void onabout();void on today box();#include <afxwin.h>#include ,myframe.h,'implement_dyncreate ( myframe, cframewnd )class myframe : public cframewnddeclare_dyncreate ( myframe );#include <afxwin.h>#inelude <afxdlgs.h>#include "mydoc.h"

48、;#include t,myview.h11#inelude hresource.hhimplement_dyncreate ( myview, cscrollview )begin_message_map ( myview, cscrollview )on_wm_create()on_wm_size()on_wm_erasebkgnd()end_message_map()bool my view: precreatewi ndow ( createstruct& cs )cs.style |= ws_clipchildren | ws_clipsiblings ;return cvi

49、ew:precreatewindow ( cs );void myview:ondraw ( cdc *p )char str20;mydoc *pdoc = (mydoc*) getdocument();cal.setyear(cal.getyear();cal.showday(p);cal.showcale nder(p);cal.showmonth(p);sprintf(str;"calender %d"/cal.getyear(); pdoc->settitle(str);void myvlew:onsize(uint type,int cxzint cy)setscrollsizes(mm_textcsize(800z780);void myview: :onerasebkgnd(cdc *pdc)crect r;cbrush my brush;getclientrect(&r);mybrush.createsolidbrush(cal.getwindowcolor();pdc->selectobject(&mybrush);pdc->fillrect(&r;&mybrush);#in cludencale nder.h” class my

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論