码迷,mamicode.com
首页 > Windows程序 > 详细

IsChild API与Delphi里的Parent不是一回事(Windows窗口自己不能是自己的子窗口,但Delphi不一定)

时间:2015-08-18 22:37:04      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

新建一个Form,上面放一个Button1,一个Panel1,然后在Panel1上再放一个Button2,测试结果:

procedure TForm1.Button1Click(Sender: TObject);
begin
    if IsChild(handle, handle) then ShowMessage(yes) else ShowMessage(no); // 显示No, 因为Form自己不是自己的Child

    if IsChild(handle, button1.handle) then ShowMessage(yes) // 显示Yes
    else ShowMessage(no);

    if IsChild(handle, panel1.handle) then ShowMessage(yes) // 显示Yes
    else ShowMessage(no);

    if IsChild(handle, button2.handle) then ShowMessage(yes) // 显示Yes,要研究一下,为什么
    else ShowMessage(no);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    ShowMessage(button2.Parent.Name); // 显示Panel1
end;

 TWinControl.CreateWindowHandle使用了TCreateParams.WndParent作为父窗口的句柄,那么button2的父窗口是什么时候设置的呢?

IsChild API与Delphi里的Parent不是一回事(Windows窗口自己不能是自己的子窗口,但Delphi不一定)

标签:

原文地址:http://www.cnblogs.com/findumars/p/4740839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!