版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本章導(dǎo)讀和學習目標本章對上一章的計算器功能進行擴展。并在此基礎(chǔ)上,介紹數(shù)組、過程、函數(shù)的定義和使用。鍵盤、鼠標的編程API函數(shù)調(diào)用12/13/20221本章目錄多功能計算器程序任務(wù)數(shù)組使用過程和函數(shù)的定義和調(diào)用鍵盤和鼠標的編程實驗和作業(yè)12/13/20222多功能計算器程序任務(wù)任務(wù)概述界面設(shè)計代碼設(shè)計12/13/20223任務(wù)概述修改、完善計算器應(yīng)用程序計算結(jié)果轉(zhuǎn)換為16進制文本框內(nèi)容不允許鍵盤輸入和修改計算器窗體總是浮在其它窗口上面數(shù)字區(qū)按鈕和功能區(qū)按鈕編程簡化12/13/20224界面設(shè)計添加16進制文本框和數(shù)字大寫文本框?qū)⒃械臄?shù)字按鈕改為控件數(shù)組鼠標移向文本框時,出現(xiàn)內(nèi)容提示12/13/2022512/13/20226代碼設(shè)計窗口總是最前控件數(shù)組禁止文本框輸入數(shù)字轉(zhuǎn)換為大寫數(shù)字和16進制12/13/20227窗口總是最前使用API函數(shù)來實現(xiàn)聲明的代碼和常量通過API閱覽器來獲取然后選擇API類型進行查找、添加和復(fù)制操作粘貼到代碼的適當位置12/13/20228SetWindowPos函數(shù)介紹函數(shù)功能:
該函數(shù)改變一個子窗口,彈出式窗口式頂層窗口的尺寸,位置和Z序。子窗口,彈出式窗口,及頂層窗口根據(jù)它們在屏幕上出現(xiàn)的順序排序、頂層窗口設(shè)置的級別最高,并且被設(shè)置為Z序的第一個窗口。
(Z序就是窗口在桌面上的排列順序,zorder越大的越靠后)函數(shù)原型:BOOLSetWindowPos(HWNhWnd,HWNDhWndlnsertAfter,intX,intY,intcx,intcy,UNIT.Flags);
12/13/20229函數(shù)參數(shù)1hWnd:窗口句柄。
句柄是一個
32
位的正整數(shù),Microsoft
Windows
用它來識別窗體或其他對象。
Windows
中,窗口可以有許多種。窗口可以是屏幕上的一塊矩形封閉區(qū)域,如熟悉的應(yīng)用程序窗口。桌面上的圖標和桌面本身也是窗口。因為許多對象都是窗口,所以
Windows
可以用類似的方式處理它們。Windows
給每個窗口一個唯一的句柄,通過句柄操縱該窗口。許多
API
函數(shù)可返回句柄或者接受句柄作參數(shù)。創(chuàng)建窗口時,Windows
給它指派一個句柄,窗口消失后句柄被釋放。
12/13/202210函數(shù)參數(shù)2hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。該參數(shù)必須為一個窗口句柄,或下列值之一:
HWND_BOTTOM:將窗口置于Z序的底部。HWND_DOTTOPMOST:將窗口置于所有非頂層窗口之上(即在所有頂層窗口之后)。HWND_TOP:將窗口置于Z序的頂部。
HWND_TOPMOST:將窗口置于所有非頂層窗口之上。即使窗口未被激活窗口也將保持頂級位置。
12/13/202211參數(shù)3~6x:以客戶坐標指定窗口新位置的左邊界。Y:以客戶坐標指定窗口新位置的頂邊界。cx:以像素指定窗口的新的寬度。cy:以像素指定窗口的新的高度。
12/13/202212參數(shù)7
uFlags:窗口尺寸和定位的標志。該參數(shù)可以是下列值的組合:
SWP_ASNCWINDOWPOS SWP_DEFERERASE
SWP_DRAWFRAME SWP_FRAMECHANGED
SWP_HIDEWINDOW SWP_NOACTIVATE
SWP_NOCOPYBITS SWP_NOMOVE
SWP_NOOWNERZORDER SWP_NOREDRAW
SWP_NOREPOSITION SWP_NOSENDCHANGING SWP_NOSIZE SWP_NOZORDER SWP_SHOWWINDOW12/13/202213參數(shù)7中的說明SWP_NOMOVE:·維持當前位置(忽略X和Y參數(shù))。SWP_NOSIZE:維持當前尺寸(忽略cx和Cy參數(shù))。
12/13/202214控件數(shù)組PrivateSubCmdNumber_Click(IndexAsInteger)
IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+Trim(Str(Index))ElsetxtSecond.Text=txtSecond.Text+Trim(Str(Index))EndIfEndSub12/13/202215PrivateSubCmdFunc_Click(IndexAsInteger)SelectCaseIndexCase0txtLabel.Text="加"Case3txtLabel.Text="乘"Case1txtLabel.Text="除"Case2txtLabel.Text="減"
EndSelect
EndSub12/13/202216禁止文本框輸入三種方法將文本框Enabled屬性設(shè)為False將文本框Locked屬性設(shè)為True通過代碼控制鍵盤12/13/202217轉(zhuǎn)為大寫和16進制數(shù)字變?yōu)?6進制---使用系統(tǒng)函數(shù)Hex
txtHex.Text=Hex(MyResult)數(shù)字大寫程序需要自己編程序12/13/202218數(shù)字大寫程序PrivateFunctionChangeMe(FirstAsDouble)AsStringDimstrFirstAsStringDimstrBig(9)AsStringDimstrTempAsStringDimi,jAsInteger
strBig(0)="零"strBig(1)="壹"strBig(2)="貳"strBig(3)="叁"strBig(4)="肆"strBig(5)="伍"strBig(6)="陸"strBig(7)="柒"strBig(8)="捌"strBig(9)="玖" '將形參First類型轉(zhuǎn)換strFirst=Trim(Str(First))strTemp=""
'數(shù)字轉(zhuǎn)換Fori=1ToLen(strFirst)j=Val(Mid(strFirst,i,1))strTemp=strTemp+strBig(j)NextiChangeMe=strTempEndFunction12/13/202219數(shù)組的使用數(shù)組控件數(shù)組枚舉和自定義數(shù)據(jù)類型12/13/202220數(shù)組數(shù)組是一組變量的集合名字相同通過不同的下標來區(qū)分靜態(tài)數(shù)組的聲明---確定數(shù)組元素個數(shù)Dim數(shù)組名(上界)As數(shù)據(jù)類型Dim數(shù)組名(下屆To上界)As數(shù)據(jù)類型12/13/202221二維數(shù)組和動態(tài)數(shù)組二維數(shù)組Dim數(shù)組名(1維上界,2維上界)As數(shù)據(jù)類型Dim數(shù)組名(下界To上界,下界To上界)As數(shù)據(jù)類型動態(tài)數(shù)組---事先不確定長度Dim數(shù)組名()AS數(shù)據(jù)類型ReDim數(shù)組名(上界或者下界To上界)As數(shù)據(jù)類型12/13/202222控件數(shù)組控件數(shù)組的類型為控件類型當應(yīng)用程序中存在多個相同的控件,這些控件的響應(yīng)事件的處理基本相同,使用控件數(shù)組可以共享代碼12/13/202223枚舉數(shù)據(jù)類型當某個變量只能取幾個固定的值時,可以使用枚舉類型。這些固定值需要一一列出來。枚舉類型在模塊級別中定義如果定義時沒有賦值,第一個自動為0,以后的一次遞增1。PublicEnumemnDay星期日=1星期一=2星期二=3星期三=4星期四=5星期五=6星期六=7EndEnumDimMydayAsenmDay12/13/202224自定義類型定義PublicTypeStudent 學號AsString*10 姓名AsString*10 年齡AsInteger 籍貫AsStringEndType聲明DimxAsStudent使用x.學號=“2004001”12/13/202225過程和函數(shù)的定義和調(diào)用編寫自定義過程的意義Sub過程Function過程參數(shù)傳遞機制簡介12/13/202226自定義過程的意義一種分塊的技術(shù),增加可讀性和可維護性可以反復(fù)使用,減少了重復(fù)編碼12/13/202227Sub過程定義PublicSubPlus(txtAsTextBox,xAsInteger,yAsInteger) txt.Text=x+yEndSub調(diào)用……PlusText1,1,2……12/13/202228Function函數(shù)定義PublicFunctionPlus(xAsInteger,yAsInteger)AsInteger Plus=x+yEndSub調(diào)用……I=Plus(1,3)……12/13/202229參數(shù)傳遞機制參數(shù)傳遞機制就是實際參數(shù)的傳送值的方式。方式一:傳送地址---引用傳遞方式二:傳送數(shù)值---值傳遞12/13/202230引用傳遞引用傳遞是默認方式通過傳遞內(nèi)存地址的方式傳送數(shù)值,如果過程中改變了形參,實際參數(shù)也會受到改變實例:P10912/13/202231值傳遞只把實際參數(shù)的數(shù)值(副本)傳遞給過程定義的時候,需要在形式參數(shù)前面加上關(guān)鍵字ByVal實例:P11012/13/202232鍵盤和鼠標的編程響應(yīng)鍵盤事件響應(yīng)鼠標事件12/13/202233響應(yīng)鍵盤的事件焦點KeyDown和KeyUpKeyPressSendKeys12/13/202234焦點焦點是活動的標志只有具有焦點的窗口才有活動標題欄;只有具有焦點的按鈕才響應(yīng)回車;只有具有焦點的文本框才接受鍵盤文本輸入設(shè)置控件焦點的方法設(shè)計時候,設(shè)置控件的TabIndex屬性,運行時按鍵Tab程序運行時,通過用鼠標選擇控件12/13/202235過程和函數(shù)的定義和調(diào)用可以將一個或者多個按鍵消息發(fā)送到活動窗口。進行查找、添加和復(fù)制操作strTemp=strTemp+strBig(j)數(shù)字區(qū)按鈕和功能區(qū)按鈕編程簡化參數(shù)傳遞機制就是實際參數(shù)的傳送值的方式。Text=Hex(MyResult)Text=Hex(MyResult)通過傳遞內(nèi)存地址的方式傳送數(shù)值,如果過程中改變了形參,實際參數(shù)也會受到改變動態(tài)數(shù)組---事先不確定長度這些固定值需要一一列出來??梢蕴岣邞?yīng)用程序的可使用性。uFlags:窗口尺寸和定位的標志。定義的時候,需要在形式參數(shù)前面加上關(guān)鍵字ByValDim數(shù)組名()AS數(shù)據(jù)類型Text=txtFirst.KeyDown和KeyUp參數(shù)KeyCode返回鍵盤上的鍵碼值,通過它判斷用戶按下了哪個按鍵。對應(yīng)關(guān)系P113參數(shù)Shift判斷用戶是否按下了Shift、Ctrl、Alt中的一個12/13/202236KeyPress發(fā)生于KeyDown和KeyUp之間。只有一個參數(shù)KeyAscii,返回用戶通過鍵盤輸入的字符的ASCII碼。處理標準的ASCII字符可以使用,處理擴展鍵、組合鍵不可以。12/13/202237SWP_SHOWWINDOWDim數(shù)組名(下界To上界,下界To上界)As數(shù)據(jù)類型將文本框Locked屬性設(shè)為True修改、完善計算器應(yīng)用程序SWP_SHOWWINDOW許多
API
函數(shù)可返回句柄或者接受句柄作參數(shù)。當應(yīng)用程序中存在多個相同的控件,這些控件的響應(yīng)事件的處理基本相同,使用控件數(shù)組可以共享代碼這些固定值需要一一列出來。桌面上的圖標和桌面本身也是窗口。ReDim數(shù)組名(上界或者下界To上界)As數(shù)據(jù)類型strTemp=strTemp+strBig(j)發(fā)生于Ke
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理消防工作總結(jié)與服務(wù)提升
- 商業(yè)空間樓地面設(shè)計與施工方案
- 智能化醫(yī)院管理方案
- 教育管理崗位說明書
- 醫(yī)院內(nèi)部審計與行風建設(shè)方案
- 科技公司新冠核酸檢測組織方案
- 面向大語言模型學習環(huán)境的小學語文教學路徑變革
- 2021年農(nóng)業(yè)技術(shù)職業(yè)技能培訓方案
- 2024年教師資格考試初級中學面試語文試題及答案指導(dǎo)
- 社區(qū)公共安全事件應(yīng)急處置預(yù)案
- 物業(yè)服務(wù)公司各崗位規(guī)范用語
- 醫(yī)患溝通內(nèi)容要求記錄模板(入院、入院三日、術(shù)前、術(shù)后、出院)
- Excel 會計記賬模板-錄入憑證自動生成財務(wù)報表(超實用)
- 航海學天文定位第四篇第6章天文定位
- 淺談深度教學中小學數(shù)學U型學習模式
- 物理電學暗箱專題30道
- 裝修公司員工勞動合同
- 江西上饒鉛山汽車駕駛科目三考試線路
- 通過一起放火案件淺析放火案件的移交工作
- 南京農(nóng)業(yè)大學學生在校學習期間現(xiàn)實表現(xiàn)證明
- 機械專業(yè)個人職業(yè)生涯規(guī)劃書范文3篇
評論
0/150
提交評論