VB 所有控制項自適應視窗大小

2021-05-26 15:45:07 字數 1960 閱讀 5749

option

explicit

private formoldwidth

aslong

'儲存窗體的原始寬度

private formoldheight

aslong

'儲存窗體的原始高度

'在呼叫resizeform前先呼叫本函式

private

sub resizeinit(formname

as form)

dim obj

as control

formoldwidth = formname.scalewidth

formoldheight = formname.scaleheight

onerror

resume

next

foreach obj

in formname

obj.tag = obj.left &

"" & obj.top &

"" & obj.width &

"" & obj.height & ""

next obj

onerror

goto

0end sub

'按比例改變表單內各元件的大小,在呼叫resizeform前先呼叫resizeinit函式

private

sub resizeform(formname

as form)

dim pos(

4) as

double

dim i

aslong, temppos

aslong, startpos

aslong

dim obj

as control

dim scalex

asdouble, scaley

asdouble

scalex = formname.scalewidth / formoldwidth

'儲存窗體寬度縮放比例

scaley = formname.scaleheight / formoldheight

'儲存窗體高度縮放比例

onerror

resume

next

foreach obj

in formname

startpos =

1for i = 0to

4'讀取控制項的原始位置與大小

temppos =

instr(startpos, obj.tag,

"", vbtextcompare)

if temppos >

0then

pos(i) =

mid(obj.tag, startpos, temppos - startpos)

startpos = temppos +

1else

pos(i) =

0endif'

根據控制項的原始位置及窗體改變大小的比例對控制項重新定位與改變大小

obj.move pos(

0) * scalex, pos(

1) * scaley, pos(

2) * scalex, pos(

3) * scaley

next i

next obj

onerror

goto

0end sub

'開發軟體時候,把這個modal裝入程式中.然後加入如下**:

private

sub form_load()

call resizeinit(

me)

'在程式裝入時必須加入

end sub

private

sub form_resize()

call resizeform(

me)

'確保窗體改變時控制項隨之改變

end sub

Qt Creator 窗體控制項自適應視窗大小布局

qt中如果想實現窗體內空間隨著窗體大小調整,必須使用布局管理,常用的布局管理有qhboxlayout qvboxlayout qgridlayout,空的地方使用spacer控制項進行填充,因此首先將窗體空間使用布局管理典型應用如下圖所示。我這裡使用qgridlayout,按住ctrl多選需要布局的...

Qt Creator 窗體控制項自適應視窗大小布局

qt中如果想實現窗體內空間隨著窗體大小調整,必須使用布局管理,常用的布局管理有qhboxlayout qvboxlayout qgridlayout,空的地方使用spacer控制項進行填充,因此首先將窗體空間使用布局管理典型應用如下圖所示。我這裡使用qgridlayout,按住ctrl多選需要布局的...

Qt Creator 窗體控制項自適應視窗大小布局

qt 的詳細介紹 請點這裡 請點這裡 推薦閱讀 ubuntu 環境下gtk與qt編譯環境安裝與配置 linux系統下qt環境搭建 ubuntu下qt控制台程式無法執行的解決方案以及xterm的配置方法 ubuntu 10.04下qt4.7.4移植詳解 linux下為剛安裝好的qt creator 建...