vb 建立圓角窗體

2021-05-24 11:47:08 字數 1491 閱讀 3598

private declare function setwindowrgn lib "user32" (byval hwnd as long, byval hrgn as long, byval bredraw as boolean) as long

private declare function createroundrectrgn lib "gdi32" (byval x1 as long, byval y1 as long, byval x2 as long, byval y2 as long, byval x3 as long, byval y3 as long) as long

private declare function deleteobject lib "gdi32" (byval hobject as long) as long

'我們先來了解一下這幾個函式

'函式createroundrectrgn用於建立乙個圓角矩形,該矩形由x1,y1-x2,y2確定,

'並由x3,y3確定的橢圓描述圓角弧度

'createroundrectrgn引數 型別及說明

'x1,y1 long,矩形左上角的x,y座標

'x2,y2 long,矩形右下角的x,y座標

'x3 long,圓角橢圓的寬。其範圍從0(沒有圓角)到矩形寬(全圓)

'y3 long,圓角橢圓的高。其範圍從0(沒有圓角)到矩形高(全圓)

'setwindowrgn用於將createroundrectrgn建立的圓角區域賦給窗體

'deleteobject用於將createroundrectrgn建立的區域刪除,這是必要的,否則不必要的占用電腦記憶體

'接下來宣告乙個全域性變數,用來獲得區域控制代碼,如下:

dim outrgn as long

'然後分別在窗體activate()事件和unload事件中輸入以下**

private sub form_activate()

call rgnform(me, 20, 20) '呼叫子過程

end sub

private sub form_unload(cancel as integer)

deleteobject outrgn '將圓角區域使用的所有系統資源釋放

end sub

'接下來我們開始編寫子過程

private sub rgnform(byval frmbox as form, byval fw as long, byval fh as long)

dim w as long, h as long

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

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

outrgn = createroundrectrgn(0, 0, w, h, fw, fh)

call setwindowrgn(frmbox.hwnd, outrgn, true)

end sub

Qt 圓角控制項,圓角窗體,滑鼠拖動窗體

1.設定圓角控制項 connectpb setstylesheet border 2px groove gray border radius 10px padding 2px 4px 設定圓角按鍵 2.設定圓角窗體 setwindowflags qt framelesswindowhint qbit...

WPF換膚之一 建立圓角窗體

wpf換膚之一 建立圓角窗體 我們都期望自己的軟體能夠有一套看上去很吸引人眼球的外衣,使得別人看上去既專業又有美感。這個系列就帶領著大家一步一步的講解如何設計出一套自己的wpf的窗體 如果文中有任何錯誤或者不足,還請指出。wpf是微軟大戰略中的乙個重心所在,學習wpf可謂是一舉多得 首先,學習wpf...

WPF換膚之一 建立圓角窗體

我們都期望自己的軟體能夠有一套看上去很吸引人眼球的外衣,使得別人看上去既專業又有美感。這個系列就帶領著大家一步一步的講解如何設計出一套自己的wpf的窗體 如果文中有任何錯誤或者不足,還請指出。wpf是微軟大戰略中的乙個重心所在,學習wpf可謂是一舉多得 首先,學習wpf可以讓你了解silverlig...