duilib中获取的控件的位置或者大小不对的可能的原因

duilib初学者可能总会有这样的疑问:为什么我获取的控件位置或者大小和我想象中的不一样?

位置不一样可能的原因:

1.xml中直接配置的位置和实际显示之后的位置确实是不一样的.xml中设置的位置(相对或绝对)都是基于他的父控件左上角.而实际显示之后获取的位置,是基于整个客户区的左上角;

2.控件的位置的计算都是在WM_PAINT消息处理中进行的,在这个消息处理之前,获取到的位置都是旧的;

大小不一样可能的原因:

1.参考上面第2条,大小的计算也是在WM_PAINT消息处理中进行的;

2.有其他你忽略的干扰项.比如子控件采用相对布局时父控件有inset,或者父控件的大小有限;

3.可能只是因为其他控件的遮盖或者超出了父控件而不显示,看起来大小不对;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏coding

vue.js组件切换

872
来自专栏ZKEASOFT

纸壳CMS在线编辑样式

纸壳CMS可以在页面设计界面,可视化修改页面内的可见元素的样式,在线编辑样式。点击组件工具栏上的“自定义样式”按按钮打开样式编辑对话框:

1444
来自专栏Python攻城狮

pycharm快捷键及一些常用设置

1. pycharm默认是自动保存的,习惯自己按ctrl + s 的可以进行如下设置:

903
来自专栏每日一篇技术文章

weex-27-通用事件

如上示例中定义的单击事件方法tap中,如果不传递参数,即使用默认参数的情况,系统会自动传递如下对象当成方法的参数

1063
来自专栏coding

v-if与v-show实例

1534
来自专栏十月梦想

Vue入门基础之组件插槽(slot)使用

组件的内容一般是在子组件中直接声明的,那么我们能不能再父组件进行自己去定义内容进行渲染呢?当然是可以的,slot就提供了极大的便利!下面看一下slot用法!

1361
来自专栏coding

transition-group实现动画效果

如果要实现动画效果的元素是通过v-for循环渲染出来的,就不能使用transition,应该用transition-group将元素包裹

811
来自专栏无原型不设计

在 Mockplus 设置页面链接,实现页面交互

在Mockplus中,可以轻松设置页面链接,方法有二:   一、直接拖拽 1 点击某个组件,此时组件上方出现小工具栏。 2 拖拽(点击后不放手)小工具栏...

2917
来自专栏happyJared

IDEA快捷键拆解系列(十五):经验篇

  本文整理了一些博主本人在学习工作中比较常用到的快捷键,有需要的可以参考一下,也欢迎留言补充。

1181
来自专栏GIS讲堂

Openlayers3中SVG图加载

鉴于SVG的优势,在图层展示的时候,会想到SVG的方式,但是OL3里面只支持ImageStatic的方式加载,也就是只能加载栅格图片,为此,本文实现Openla...

1814

扫码关注云+社区