一个继承自TWinControl的自定义控件,为什么一用Handle属性就出错.

testnet 2002-10-20 03:40:09
我是这样创建的 sub:=TSubWinControl.Create(self);
当用sub.handle就出错。提示"has not parent window"
怎样解决
...全文
87 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
广州接入 2002-10-20
  • 打赏
  • 举报
回复
如果你的控件需要消息处理,你没有指定父窗口,Windows当然会认为你错。
广州接入 2002-10-20
  • 打赏
  • 举报
回复
补充:
因为TWinControl控件为可视控件,必然涉及到很多消息的处理,如重画自己。而WindowS操作系统消息机制就决定了任何可视控件(有消息处理的)都必须具有父窗口。
w1----w11
|__w12
|__w13____w131
|__w132
指定了父窗口就成为窗口树中的一个节点,也才能获得消息.
广州接入 2002-10-20
  • 打赏
  • 举报
回复
TWinControl控件都需要指定父窗口来决定怎样显示。
没有父窗口当然会出错。
sub.parent=你需要指定的窗口.
chechy 2002-10-20
  • 打赏
  • 举报
回复
是不是没有给控件指定一个Parent比如:
sub.Parent := Self;
然后在试试
sub.Handle

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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