窗体的scalemode属性用于指定

发布时间:2024-11-28 15:36:50 来源:君肯网

ScaleMode主要用于在控件上画图,可以改变计量单位,如果你仅显示图片,可以不必考虑这些属性。

=================================================

ScaleMode 属性【引用MSDN】

当使用图形方法或调整控件位置时,返回或设置一个值,该值指示对象坐标的度量单位。

语法

object.ScaleMode [=

value]

ScaleMode

属性的语法包含下面部分:

部分

描述

Object

对象表达式,其值是“应用于”列表中的一个对象。

Value

一个指定度量单位的整数,“设置值”中有详细描述。

设置值

value 的设置值为:

常数

设置值

描述

VbUser

0

指出 ScaleHeight、ScaleWidth、ScaleLeft 和

ScaleTop 属性中的一个或多个被设置为自定义的值。

VbTwips

1

(缺省值)缇(每逻辑英寸为 1440

缇;每逻辑厘米为 567 个缇)。

VbPoints

2

磅(每逻辑英寸为 72

个磅)。

VbPixels

3

像素(监视器或打印机分辨率的最小单位)。

VbCharacters

4

字符(水平每个单位=120 缇;垂直每个单位=240

缇。)

VbInches

5

英寸。

VbMillimeters

6

毫米。

VbCentimeters

7

厘米。

VbHimetric

8

HiMetric

VbContainerPosition

9

控件容器使用的单位,决定控件位置。

VbContainerSize

10

控件容器使用的单位,决定控件的大小。

说明

相关的 ScaleHeight、ScaleWidth、ScaleLeft 与 ScaleTop

属性的使用,可以建立起一个带有正、负坐标的自定义坐标系统。这四个 Scale 属性与 ScaleMode

属性按下面的方式进行交互作用:

把其它任何 Scale 属性设置为任何值都将 ScaleMode 自动地设置为 0。ScaleMode 等于 0

是用户定义。

把 ScaleMode

属性设置为一个大于 0 的数,将使 ScaleHeight 和 ScaleWidth 的度量单位发生改变,并将

ScaleLeft 和 ScaleTop 设置为 0。CurrentX 和

CurrentY的设置值将发生改变以反映当前点的新坐标。

scalewidth是什么

指的是PictureBox中长度单位, 比如 1 pixel(像素) = 15 Twips(缇)

这种设置横重要, 一般来讲不要修改为Twip以外的其他单位, 否则回给编程带来麻烦

怎么用vb实现图形的旋转?

ScaleHeight、ScaleWidth 属性

当使用图形方法或调整控件位置时,返回或设置对象内部的水平 (ScaleWidth) 或垂直 (ScaleHeight) 度量单位。对于 MDIForm 对象,在设计时 是不可用的,并且在运行时是只读的。

语法

object.ScaleHeight [= value]

object.ScaleWidth [= value]

ScaleHeight 和 ScaleWidth 属性的语法包含下面部分:

部分 描述

Object 对象表达式,其值是“应用于”列表中的一个对象。

Value 一个用来指定水平或垂直度量的数值表达式。

说明

能够使用这些属性来为绘图或打印创建一个自定义的坐标比例尺。例如,语句 ScaleHeight = 100 将改变窗体实际内部高度的度量单位。取代当前高度为 n 个单位(缇、像素、…),高度将变为 100 个自定义单位。因而,50 个单位的距离就是对象的高度/宽度的一半,101 个单位的距离将超出对象 1 个单位。

为了定义基于标准度量单位的比例尺,例如缇、磅、像素、字符、英寸、毫米、或厘米应使用 ScaleMode 属性。

这些属性设置为正值将使坐标从上向下及从左向右增加。它们设置为负值将使坐标从下向上及从右向左增加。

这些属性和相关的 ScaleLeft 与 ScaleTop 属性的使用,可以建立起一个完全的带有正、负坐标的坐标系统。所有这四个 Scale 属性与 ScaleMode 属性按下面的方式进行交互作用:

把其它任何 Scale 属性设置为任何值都将使 ScaleMode 自动地设置为 0。ScaleMode 等于 0 是用户定义。

把 ScaleMode 设置为一个大于 0 的数,将使 ScaleHeight 和 ScaleWidth 的度量单位发生改变,并将 ScaleLeft 和 ScaleTop 设置为 0。另外,CurrentX 和 CurrentY 的设置值将发生改变以反映当前点的新坐标。

也可以在语句中使用 Scale 方法设置 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性。

注意 ScaleHeight 和 ScaleWidth 属性与 Height 和 Width 属性是不一样的。

对于 MDIForm 对象,ScaleHeight 和 ScaleWidth 仅涉及窗体中未被 PictureBox 控件覆盖的区域。在 MDIForm 的 Resize 事件中应避免使用这些属性调整 PictureBox 的大小。

VB 如何打开窗口就自动用PictureBox绘图

启动vb6建立一个标准exe工程,首先添加两个图片框(picture1和picture2),添加三个命令按钮command1(caption=“正常显示”)、command2(caption=“180度倒立”)、command3(caption=“45度旋转”),双击窗体,写入以下代码:

PrivateConstSRCCOPY=&ampHCC0020

PrivateConstPi=3.14

PrivateDeclareFunctionSetPixelLib\”gdi32\”(ByValhdcAsLong, ByValxAsLong,ByValyAsLong,ByValcrColorAsLong)AsLong

PrivateDeclareFunctionGetPixelLib\”gdi32\”(ByValhdcAsLong, ByValxAsLong,ByValyAsLong)AsLong

PrivateDeclareFunctionStretchBltLib\”gdi32\”(ByValhdcAsLong, ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong, ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValnSrcWidth AsLong,ByValnSrcHeightAsLong,ByValdwRopAsLong)AsLong

privateSubbmp_rotate(pic1AsPictureBox,pic2AsPictureBox,ByValtheta)‘45度旋转

Dimc1xAsInteger,c1yAsInteger

Dimc2xAsInteger,c2yAsInteger

DimaAsSingle

Dimp1xAsInteger,p1yAsInteger

Dimp2xAsInteger,p2yAsInteger

窗体的scalemode属性用于指定

DimnAsInteger,rAsInteger

c1x=pic1.ScaleWidth\\2

c1y=pic1.ScaleHeight\\2

c2x=pic2.ScaleWidth\\2

c2y=pic2.ScaleHeight\\2

Ifc2x$#@60c2yThenn=c2yElsen=c2x

n=n-1

pic1hDC=pic1.hdc

pic2hDC=pic2.hdc

Forp2x=0Ton

Forp2y=0Ton

Ifp2x=0Thena=Pi/2Elsea=Atn(p2y/p2x)

r=Sqr(1&amp*p2x*p2x+1&amp*p2y*p2y)

p1x=r*Cos(a+theta)

p1y=r*Sin(a+theta)

c0&amp=GetPixel(pic1hDC,c1x+p1x,c1y+p1y)

c1&amp=GetPixel(pic1hDC,c1x-p1x,c1y-p1y)

c2&amp=GetPixel(pic1hDC,c1x+p1y,c1y-p1x)

c3&amp=GetPixel(pic1hDC,c1x-p1y,c1y+p1x)

Ifc0&amp$#@60$#@62-1ThenSetPixelpic2hDC,c2x+p2x,c2y+p2y,c0

Ifc1&amp$#@60$#@62-1ThenSetPixelpic2hDC,c2x-p2x,c2y-p2y,c1

Ifc2&amp$#@60$#@62-1ThenSetPi pic2hDC,c2x+p2y,c2y-p2x,c2

Ifc3&amp$#@60$#@62-1ThenSetPixelpic2hDC,c2x-p2y,c2y+p2x,c3

Next

Next

EndSub

PrivateSubCommand1_Click()‘正常复制

Picture2.Cls

px=Picture1.ScaleWidth

py=Picture1.ScaleHeight

StretchBltPicture2.hdc,px,0,-px,py,Picture1.hdc,0,0,px,py,SRCCOPY

EndSub

PrivateSubCommand2_Click()‘180度倒立

Picture2.Cls

px=Picture1.ScaleWidth

py=Picture1.ScaleHeight

StretchBltPicture2.hdc,0,py,px,-py,Picture1.hdc,0,0,px,py,SRCCOPY

EndSub

PrivateSubCommand3_Click()‘45旋转

Picture2.Cls

Callbmp_rotate(Picture1,Picture2,3.14/4)

EndSub

PrivateSubForm_Load()

OnErrorResumeNext

Me.Caption=App.Title\”添加应用程序标题

Me.Left=(Screen.Width-Me.Width)/2

Me.Top=(Screen.Height-Me.Height)/2\”窗体具中

Picture1.ScaleMode=3

Picture2.ScaleMode=3

EndSub

添加一个按钮,添加以下代码

private

sub

command1_click()

\’设为像素模式,绘图时的单位

me.picture1.scalemode

=

3

me.picture2.scalemode

=

3

me.picture3.scalemode

=

3

\’无边框模式,否则边框会减小图片

me.picture1.borderstyle

=

0

me.picture1.fillstyle

=

0

me.picture2.borderstyle

=

0

me.picture2.fillstyle

=

0

\’前两个自动大小,这样可以知道图片大小

me.picture1.autosize

=

true

me.picture2.autosize

=

true

\’自动重画,否则图片会消失

me.picture3.autoredraw

=

true

me.picture3.paintpicture

me.picture1.picture,

0,

0

me.picture3.paintpicture

me.picture2.picture,

me.picture1.scalewidth,

0

end

sub

以上就是关于窗体的scalemode属性用于指定全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

ScaleMode主要用于在控件上画图,可以改变计量单位,如果你仅显示图片,可以不必考虑这些属性。=====================…
查看详情
ScaleMode主要用于在控件上画图,可以改变计量单位,如果你仅显示图片,可以不必考虑这些属性。=====================…
查看详情
ScaleMode主要用于在控件上画图,可以改变计量单位,如果你仅显示图片,可以不必考虑这些属性。=====================…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载