您的位置:程序门 -> delphi -> windows sdk/api



基于其他窗口的模态显示怎么做


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


基于其他窗口的模态显示怎么做
发表于:2007-01-10 12:06:47 楼主
我做了一个窗体程序a
想让它成为另一个已知句柄的程序b的对话框
也就是说
点击b上某按钮时
a会基于b而模态显示出来
效果就和b自己的模态对话框一样
请问应该怎么实现呢?

我现在用了一个方法
就是显示a的时候用enablewindow函数使b不可用
然后在a   的结束的时候再使其可用
但是这样有点不正宗
运行的时候点下面的b窗口a窗口也不会做出标题栏的闪烁
到底应该怎么做呢
请指点
发表于:2007-01-10 12:31:471楼 得分:0
procedure   tmodeform.createparams(var   params:   tcreateparams);
begin
    inherited   createparams(params);
    with   params   do  
    begin
        wndparent   :=   parnethwnd;   //parnethwnd   主程序的名柄
    end;
end;
///
再showmodel应该就可以了吧。。
发表于:2007-01-10 13:49:332楼 得分:0
我做了实验,也就是说让b成为a的父窗口
但是这样不行
这样做的效果是
a显示的   时候完全处于b窗口之内
仿佛一个mdi的子窗口一般,
整个被限制在父窗口之内
这显然不是模态显示的效果
发表于:2007-01-10 13:51:063楼 得分:0
或许应当使用windowsapi函数dialogbox来做
可是参数很复杂
不会用
发表于:2007-01-10 17:11:184楼 得分:0
你把a窗口的东西copy到b窗口来,
发表于:2007-01-11 08:49:585楼 得分:0
api

hwnd   setparent(

        hwnd   hwndchild, //   handle   of   window   whose   parent   is   changing
        hwnd   hwndnewparent   //   handle   of   new   parent   window
      );


快速检索

最新资讯
热门点击