郁闷的scalemode..

lingll 2005-05-29 04:53:27
api中的单位是pixel,vb默认的是twip,
好,这个好办,将form,picturebox的scalemode设为pixel就好,
谁知道frame竟没有scalemode,默认的单位就是 twip,
这下好了,部分控件是pixel,部分是twip(frame中的那些就是),天啊,怎能这样,..
难道容器都用picturebox? 如果能够设置默认的scalemode就好了..
...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingll 2005-05-30
  • 打赏
  • 举报
回复
是啊,唯有用width/screen.twipsprepixelX 来转换了

to:wumylove1234(毁于随)
其实frame没有dc,不过还是可以用getdc来获取的,具体是否可行我就没有试,
只是这样搞太麻烦了点,还是自己转换一下算了(width/screen.twipsprepixelX )
qiqi5521 2005-05-30
  • 打赏
  • 举报
回复
楼主说的没错。我也不知道为什么Frame控件为啥这么怪?
我一般是用 width/screen.twipsprepixelX 运算一下,就可以得到象素坐标了。
wumylove1234 2005-05-30
  • 打赏
  • 举报
回复
顶.
lingll 2005-05-29
  • 打赏
  • 举报
回复
"scalemode是继承的,你只需要将form的设置好就行"
我也希望是,但事实却不是
胖河马 2005-05-29
  • 打赏
  • 举报
回复
scalemode是继承的,你只需要将form的设置好就行
wumylove1234 2005-05-29
  • 打赏
  • 举报
回复
晕了.不好意思啊.我刚看了一下,API中的SetMapMode (hdc, iMapMode) ;
要的是HDC啊....
而Frame控件没有Hdc句柄属性..

而我看了SDK,Windows提供的Frame是Static类的控件,而VB中的Frame显然是经过包装过的Frame,我的能力有限,不知道VB是如何包装Frame的,同时我也不知道ActiveX控件是如何转变成系统标准的消息处理等等细节问题.
wumylove1234 2005-05-29
  • 打赏
  • 举报
回复
我看了一下,Frame有hwnd,估计可以用API来改变Frame的ScaleMode

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧