我正在重构一个VB6应用程序。任何控件的测量值都是缇。在VB6中是否可以将控件设置为使用像素而不是缇?感谢
答案 0 :(得分:8)
我在当天使用scalemode进行了广泛的工作,我所能说的就是不要打扰。它没有得到普遍的支持,这意味着无论如何你最终会转换回缇。
VB6是基于twips的,无论喜欢与否,所以如果你尝试做基于像素的事情,你将会在整个过程中对抗当前。
幸运的是VB.net终于完成了所有这些,并且完全基于像素,你仍然可以改变视口缩放,但.net似乎比Vb6处理得更好。
答案 1 :(得分:7)
ScaleMode Property有帮助吗?
使用图形方法或定位控件时,返回或设置一个值,指示对象坐标的测量单位。
答案 2 :(得分:7)
dim iInPixels as integer
dim iInTwips as integer
iInPixels = 200
iInTwips = iInPixels * Screen.TwipsPerPixelX
iInPixels = iInTwips / Screen.TwipsPerPixelX
正如@drventure说的那样,你将在整个过程中对抗当前的情况,但实际上并不是那么糟糕,只要你能将逻辑隔离到一个位置。
答案 3 :(得分:3)
Microsoft知识库文章:How to Convert Twips to Pixels
上面的链接适用于Access VBA,但也适用于VB6。我不知道本机VB6功能可以满足您的需求。根据我的记忆,ScaleMode不适用于您想要做的事情(尽管事实上它似乎存在以解决您的确切问题)。
编辑:正如我在想的那样,ScaleMode没有解决我当时遇到的我的问题。根据您的尝试,它可以解决您的问题。我当然会先尝试,因为它会生成更简单,更易于维护的代码。
答案 4 :(得分:1)
Command3.Caption =“Pixels:”& Int(Form1.Picture.Width / pixelize)& “x”& Int(Form1.Picture.Height / pixelize)
适合我,也许你得到了帮助。