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小程式不理解,向行家求教,一個VB小程式不理解,向行家求教

問題一 這裡有三個for i 用的是同一個字元 i 這三個i,有什麼關聯嗎?答 沒有關聯 問題二 第一個迴圈結束,應該是a i 1,2,3 4 5 6 7 8 9 10.這十個陣列成的陣列,是嗎?第二個迴圈結束,p i 1,4,9.這三個陣列成的陣列,對嗎?答 對的 問題三 第三個for迴圈中,k ...

微信刑序有哪些微信刑序大全,微信小程式有哪些 微信小程式大全

美團外賣 滴滴公交查詢 車來了大眾點評 京東購物 摩拜單車 滴滴出行didi 攜程酒店機票火車票 程式有哪些 好玩的微信小程式大全介紹 好玩的小程式還真挺多的,容易上手的就是小遊戲,推薦一些好玩的給你 跳一跳 燃燒頭腦 歡樂六邊形 彈球王者 大家來找茬 歡樂坦克大戰。其他的遊戲,可以在小程式裡直接搜...

如何讓微信刑序連結,如何讓微信小程式連結websocket

這個提示就是 埠衝突.朝這個方向去找問題.至於具體的解決辦法,不好意思,我只懂程式.如何讓微信小程式連結websocket 使用goeasy,你無需搭建websocket伺服器,通過goeasy提供的介面,你可以很方便 快捷的將資訊傳送到任何你的客戶端。具體的使用方法在下面 獲取 goeasy sd...