vb有趣刑序,vb有趣小程式

時間 2021-10-19 11:38:59

1樓:匿名使用者

private withevents timer1 as timer

dim r&, r1&, t&, a1!, a2!, xb!, yb!, s!, b#

private sub form_load()

me.width = 4500: me.height = 4500

me.move (screen.width - me.width) \ 2, (screen.height - me.height) \ 2

me.autoredraw = true

me.caption = "cbm666的萬花筒"

set timer1 = controls.add("vb.timer", "timer1")

timer1.interval = 10

end sub

private sub timer1_timer()

randomize

r = 340 * rnd

if r <> 0 then

r1 = 500

s = r * rnd

b = rgb(256 * rnd, 256 * rnd, 256 * rnd)

for t = 1 to 10000

a1 = t * 3.1415926 / 180

a2 = (r1 / r) * a1

xb = 500 + (-(r1 - r) * cos(a1) - s * cos(a2 - a1) + 420) * 4

yb = 500 + ((r1 - r) * sin(a1) - s * sin(a2 - a1) + 380) * 4

me.pset (xb, yb), b

next t

end if

end sub

2樓:白方危英媛

vb製作奇形怪狀的窗體

普通的窗體都是方方的,使用api函式可以做出一些奇怪的形狀。比如,窗體是圓角矩形,在中間挖一個橢圓形的洞。

先要理解一個重要的概念:區域。區域是描述裝置場景中某一塊的gdi物件,每個區域都有一個控制代碼。

一個區域可以是矩形,也可以是複雜的多邊形,甚至是幾個區域組織在一起。窗體預設的區域就是我們看到的矩形,當然它並非一定要用這個預設的區域

現在開始,首先在窗體上做一個圓角矩形區域,這是窗體的大致輪廓。在圓角矩形裡再確定一個橢圓形的區域,然後把這兩個區域組織成一個區域,並設定窗體的區域為這個組織出來的區域。

createroundrectrgn函式用於建立一個圓角矩形區域;createellipticrgn用於建立一個橢圓區域;combinergn函式用於將兩個區域組合為一個新區域;setwindowrgn函式允許您改變視窗的區域。使用其他的函式還可以做出其他更奇怪的窗體。

源**如下:

optionexplicit

'api函式宣告

privatedeclarefunctioncreaterectrgnlib"gdi32"(byvalx1aslong,byvaly1aslong,byvalx2aslong,byvaly2aslong)aslong

privatedeclarefunctioncreateroundrectrgnlib"gdi32"(byvalx1aslong,byvaly1aslong,byvalx2aslong,byvaly2aslong,byvalx3aslong,byvaly3aslong)aslong

privatedeclarefunctioncreateellipticrgnlib"gdi32"(byvalx1aslong,byvaly1aslong,byvalx2aslong,byvaly2aslong)aslong

privatedeclarefunctioncombinergnlib"gdi32"(byvalhdestrgnaslong,byvalhsrcrgn1aslong,byvalhsrcrgn2aslong,byvalncombinemodeaslong)aslong

privatedeclarefunctionsetwindowrgnlib"user32"(byvalhwndaslong,byvalhrgnaslong,byvalbredrawasboolean)aslong

privatedeclarefunctiondeleteobjectlib"gdi32"(byvalhobjectaslong)aslong

'常數宣告

privateconstrgn_diff=4

'目標區域被設定為兩個區域不相交的部分

'模組級變數宣告

privateoutrgnaslong

'外邊的圓角矩形區域

privateinrgnaslong

'裡邊的橢圓區域

privatemyrgnaslong

'圓角區域剪下掉橢圓區域後的區域,也是窗體最終的形狀

privatesubform_click()

ifoutrgn<>0andinrgn<>0andmyrgn<>0thenexitsub

dimwaslong,haslong

w=scalex(form1.width,vbtwips,vbpixels)

h=scaley(form1.height,vbtwips,vbpixels)

myrgn=createrectrgn(0,0,0,0)

outrgn=createroundrectrgn(30,30,w-30,h-30,100,100)

inrgn=createellipticrgn(100,100,w-100,h-100)

callcombinergn(myrgn,outrgn,inrgn,rgn_diff)

callsetwindowrgn(form1.hwnd,myrgn,true)

form1.backcolor=qbcolor(4)

endsub

privatesubform_dblclick()

unloadform1

endsub

privatesubform_load()

outrgn=0

inrgn=0

myrgn=0

form1.width=7800

form1.height=6000

endsub

privatesubform_unload(cancelasinteger)

ifmyrgn<>0thendeleteobjectmyrgn

ifoutrgn<>0thendeleteobjectoutrgn

ifinrgn<>0thendeleteobjectinrgn

endsub

這個程式執行後,在窗體上單擊,窗體就會變形,雙擊窗體程式結束。要注意的是,在解除安裝窗體時,用deleteobject函式刪除已定義的區域。

vb和vbscript區別,vb和vbscript區別是什麼

vb是以basic為基準的微軟開發的語言程式設計整合開發環境 ide 用於windows系統下的應用檔案開發。vbsript是asp使用的指令碼語言,用於開發動態網頁,兩者在語法上相似,但本質卻不同。 vb是開發應用程式的。vb是嵌入到html中實現一些網頁特定功能的兩者語法有一定聯絡,但具體功能完...

VB陣列操作,VB怎麼宣告陣列

能你的例子 希望對你有幫助 dim a 3 as integer dim i as integer a 0 1 a 1 2 a 2 3 a 3 4 for i o to 3 text1.text text1.text a i next i vb怎麼宣告陣列 如果有規律就可以用for next 來賦值...

VB密碼讀取,vb做個密碼輸入

你實現學習一下vb和access資料庫的連線,問題就十分簡單了。用vb怎樣把輸入的密碼變成星號 顯示出來?只要將textbox設定屬性parrwordchar為 即可,如 textbox元件使用雖然比較簡單,但textbox類的構成成員卻是非常的豐富。在一般性的程式設計中,主要涉及到三類 屬性 方法...