如何让子控件超出父控件范围显示

vifuer_han 2008-05-07 03:19:57
一个父控件,一个子控件件(均派生于CCoeControl),在父控件,设置子控件的SetRect或者SetExtent()等等,不管这个设定的范例有多大,只有超出父控件的rect,就会被截断,在子控件中的Draw(const TRect& aRect)中传入的aRect不再是原来设定的范围,而是截断之后的范围,似乎可以一句话总结之:子控件不能超出父控件范围显示.但我有以下几个疑问:
1.在自定义子控件的Draw(const TRect& aRect)函数中,不用传入的实参aRect,而用以前设定的rect,假如这个rect超出父控件范围的话,也能完全显示(但不能超出所CreateWindowL的RWindow)的范围;
2.范例中常用的CEikLabel控件好象超出包含他的控件的范围,仍然显示,为什么?

其实我只想问一个问题:如何不改Draw参加,让子控件超出父控件范围显示!!!

...全文
1561 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
whhema 2008-05-07
  • 打赏
  • 举报
回复
绘制的动作基于窗口。
按你的描述,你的父控件本身拥有窗口,子控件的窗口关联到父控件的窗口(即子控件自身不拥有窗口)。

根据是否拥有窗口,窗口起点位置的不同,传入的范围也是不一样的。
vifuer_han 2008-05-07
  • 打赏
  • 举报
回复
我来自问自答:
仔细想了想,还是symbian有道理,假如你想让系统自动限制子控件范围的话,就用Draw(const TRect& aRect)传过来的aRect,否则,如果不想子控件被截断,就直接在Draw中用到rect的地方用Rect()函数代替就成了,很方便,这样也是很合理的,呵呵

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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