您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > VB6的绘图方法与常用函数
VB6的繪圖方法與常用函數常用繪圖方法(Method)指令ClsClearScreen,清除螢幕用點、線、圓….等繪圖方法所畫出的圖形或是用Print輸出的字串,都可以用Cls方法來加以清除。語法•[Object].Cls物件.Cls常用繪圖方法、指令(續)Pset用來畫任意顏色的點語法•[Object.]Pset[Step](X,Y)[,color]其中的X,Y是單精度變數,因此可以使用小數數值、變數。如果不指定color引數,就以ForeColor屬性的顏色為顏色。如果將color引數,設定為BackColor就會有「消除」的效果。常用繪圖方法、指令(續)Point可以讀取任意點的顏色值語法•[Object.]Point(X,Y)Picture1AutoRedraw:TrueDrawWidth:5常用繪圖方法、指令(續)Line畫一條線語法•B:畫框•BF:畫框且填滿[Object.]Line[[Step](X1,Y1)]–[Step](X2,Y2),[Color][,B[F]]]Line(X1,Y1)-(X2,Y2)Line–(X1,Y1)常用繪圖方法、指令(續)Circle畫圓語法•Radius:半徑•Start:弧的起點•End:弧的終點•Aspec:長短軸比[Object.]CircleStep(X,Y),Radius,Color,Start,End,Aspec牛刀小試(1)試寫一程式,模擬小畫家的噴霧、畫筆與畫線的功能牛刀小試(1)---續Picture1Box*1Shape*16CommandButton*8牛刀小試(1)---續屬性設定PictureBox(Picture1)•AutoRedraw:True•Appearance:0–平面•BorderStyle:1–單線固定•ScaleMode:3–像素Shape(Shape1(0)~(15))CommandButton(Command1~5)•Caption:如圖示•Command4(0)~(3)表示線條寬度設定牛刀小試(1)---續全域變數宣告:mode1噴霧、2畫筆、3畫線ttt滑鼠左鍵點選的狀態0第一次點選、1第二次點選xx,yy記錄滑鼠第一次點選的座標selcolor從調色盤選取的顏色值ttt的起始值設為0Picture1的起始線條寬度為1填充Shape1,建立調色盤當滑鼠的左鍵點選調色盤後,將色碼值指派給selcolor變數牛刀小試(1)---續當按下Command1設定為「噴霧」當按下Command2設定為「畫筆」當按下Command3設定為「畫筆」當按下Command4(0)~(3)時按所對應Index的Caption設定Picture1的線條寬度當按下Command5時,清空Picture1的內容牛刀小試(1)---續當mode=1時(噴霧),以滑鼠所點選的位置座標為中心,上下左右各延伸十個像素,以亂數取20個座標點,分別畫上一點當mode=2時(畫筆),以滑鼠第一次點選的位置為基準繪上一點,並令ttt變數值為1,倘若第二次點選滑鼠,則令ttt變數值為0當mode=3時(畫線),以滑鼠第一次點選的位置為基準繪上一點,並令ttt變數值為1,以xx及yy變數記錄起點,倘若第二次點選滑鼠,則令ttt變數值為0,且於(xx,yy)到第二次的點選點繪製一條線當mode=2且ttt=1時,移動滑鼠的同時,於Picture1上繪製前一個座標到目前座標間的線條常用的字串函數Left()傳回字串左邊指定數量的字元語法•Left_str=Left(Str,n)•將Str字串的左邊n個字元放到Left_str中–n為小數時,則系統會自動將n以四捨五入轉成整數型態–如果nStr的長度時,將傳回全部字串Str=“ABCDEFG”sss=Left(Str,3)sss=“ABC”常用的字串函數(續)Right()傳回字串右邊指定數量的字元語法•Right_str=Right(Str,n)•將Str字串的右邊n個字元放到Right_str中–n為小數時,則系統會自動將n以四捨五入轉成整數型態–如果nStr的長度時,將傳回全部字串Str=“ABCDEFG”sss=Right(Str,3)sss=“EFG”常用的字串函數(續)Mid()傳回字串中間指定數量的字元語法•Mid_str=Mid(Str,n)–將Str字串的第n個字元起後的全部字元放到Mid_str中•Mid_str=Mid(Str,n,m)–將Str字串的第n個字元起後的m個字元放到Mid_str中Str=“ABCDEFG”sss=Mid(Str,3)sss=“CDEFG”Str=“ABCDEFG”sss=Mid(Str,3,4)sss=“CDEF”常用的字串函數(續)Len()傳回字串的長度語法•Len_str=Len(Str)•將Str字串長度的值放到Len_str中Str=“ABCDEFG”sss=Len(Str)sss=7常用的字串函數(續)LTrim()、Trim()、RTrim()刪除字串中的空白字元L_str=LTrim(Str)•傳回Str字串左邊不含空白字元的字串T_str=Trim(Str)•傳回Str字串左右兩邊不含空白字元的字串R_str=RTrim(Str)•傳回Str字串右邊不含空白字元的字串Str=“ABCD”sss=LTrim(Str)sss=“ABCD”Str=“ABCD”sss=RTrim(Str)sss=“ABCD”Str=“ABCD”sss=Trim(Str)sss=“ABCD”常用的字串函數(續)Space()重複空白字元語法•Space_str=Space(n)•傳回n個空白的字元Str1=“ABCD”Str2=“EFGH”sss=Str1+Space(3)+Str2sss=“ABCDEFGH”常用的字串函數(續)String()重複特定字元語法•String_str=String(n,Str)•傳回n個Str字串的第一個字元Str=“ABCD”sss=String(4,Str)sss=“AAAA”常用的字串函數(續)Asc()字元轉成Ascii碼語法•Asc_str=Asc(Str)•傳回Str字串的第一個字元轉成Ascii碼Chr()Ascii碼轉成字元語法•Chr_str=Chr(Str)•將數值資料轉成相對應的Ascii字元Str=“ABCD”sss=Asc(Str)sss=65Str=65sss=Chr(Str)sss=“A”常用的字串函數(續)Tab()定位函數語法•Tab(n)•目前游標所在行的最前面開始,向右邊移動n個位置與Print指令搭配使用Spc()移位函數語法•Spc(n)•目前游標所在位置開始,向右邊插入n個空白字元與Print指令搭配使用常用的轉換函數Int_str=Val(Str)將字串轉為數值型態Str_str=Str(Int)將數值轉為字串型態CV=FormatCurrency(X,n,vbTrue或vbFalse)將數值資料轉為貨幣值格式FP=FormatPercent(X,n,vbTrue或vbFalse)將數值資料格式化為百分比格式數值資料小數位數vbTrue:小數點前要補0vbFalse:小數點前不補0常用的轉換函數(續)FN=FormatNumber(X,n,vbTrue或vbFalse)將數值資料格式化DV=FormatDateTime(X,[顯示日期時間的格式])假令X=#5/5/200310:10:19PM#則顯示日期時間的格式為•0日期與時間2003/5/5PM10:10:19•1完整日期2003年5月5日•2簡短日期2003/5/5•3完整時間PM10:10:19•424小時格式22:10常用的轉換函數(續)Week_name=WeekdayName(Str)傳回星期的名稱給Week_nameMonth_name=MonthName(Str)傳回月份的名稱給Month_nameReverse_str=StrReverse(Str)將字串Str反轉後回傳給Reverse_strJoin_str=Join(Str_Array,[d])將字串陣列組合成一個字串,d代表分隔字元常用的數學函數Abs(X)Sin(X)Cos(X)Tan(X)Atn(X)Exp(X)Log(X)Rnd(X)Sgn(X)CInt(X)Clog(X)Int(X)Fix(X)Sqr(X)Hex(X)Oct(X)Round(X,n)求整數值三角函數求絕對值指數函數自然對數亂數函數符號函數轉為整數函數轉為長整數函數求平方根16進位函數8進位函數依指定求出小數點位數並四捨五入常用的日期時間函數Date目前的系統日期Time目前的系統時間Now目前的系統日期與時間常用的日期時間函數(續)Timer傳回一Single型態的數值,其內容為從前一個午夜算起到現在所經過的秒數。Year(date):傳回date變數的年份Month(date):傳回date變數的月份Day(date):傳回date變數的日期Hour(time):傳回time變數的小時Minute(time):傳回time變數的分鐘Second(time):傳回time變數的秒鐘範例試設計一萬年曆程式陽曆為何有閏年的安排?有何規律性?陽曆訂地球繞太陽公轉一周為一年,全年合計365日,稱為平年(平均太陽年的簡稱),但實際上地球繞日公轉一周平均為365.2422日,因此每積四年就會多出約0.9688日,為了使曆法能配合天象,規定當西元年數是四的倍數時,二月就增加1天成29天,該年稱為閏年,又因此法每四年又會多加0.03日左右,故再規定每四百年需減3天,當西元年數逢百年的倍數時,必需是400的倍數才是閏年,如1700、1800、1900都是平年,只有2000年能被400整除才是閏年。閏年的規則西元年數為4的倍數者閏100的倍數者不閏但400的倍數者閏所有的年可被4整除的年可被100整除的年可被400整除的年閏年平年西元元年一月一日是星期幾?星期一因此…西元元年一月三十一日是星期?31mod7=3星期三西元元年二月十日是星期?(31+10)mod7=6星期六西元二年一月十三日是星期?(365+13)mod7=0星期日版面配置ComboBox[Combo1]ComboBox[Combo2]Label[Label1(0)]Label[Label3]Label[Label2]Label[Label1(1)]CommandButton[Command1(0)~Command1(36)]CommandButton[Command2]所使用的變數year(型態為long)欲查詢的西元年month(型態為integer)欲查詢的月份day(型態為long)自西元元年一月一日至欲查詢的西元年月的第一天的總天數例如:欲查詢2001年12月,則day為西元元年1月1日至2001年12月1日的總天數month_day(型態為variant)一個儲存平年各月份天數的一維陣列(31,28,31,30,31,30,31,31,30,31,30,31)程式開始執行時的初值設定在Combo1中加入1999年至2010年的選項在Combo2中加入1月至12月的選項按平年各月的天數來設定month_day這個陣列的初始值Month_day01234567891011相對月份123456789101112相對天數312831303130313130313031CommandButton2的內容PrivateSubCommand2_Click()IfMsgBox(是否確定離開??,vbOKCancel+vbQuestion,離開)=vbOKThenEndEndIfEndSubCommandButton1要做什麼?用來顯示月曆以複製方式建立Command1(0)~Command1(36)程式核心—ComboBox2希望當選定月份後立即顯示相對於所選年月的月曆因此,整個動作的重心就該放在Co
本文标题:VB6的绘图方法与常用函数
链接地址:https://www.777doc.com/doc-314870 .html