如何求得程序的所有窗口?

bosshoss 2005-12-12 04:44:34
问题1:一个程序,一个主窗口,N个子窗口(没有动态的),如何得知有有多少个子窗口(包括没有显示出来的)?
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bosshoss 2005-12-13
  • 打赏
  • 举报
回复
其实程序的所有窗口列表在PROGRAM中有个清单,编译后这个清单有没有在程序中,如有,如何调用?
bosshoss 2005-12-13
  • 打赏
  • 举报
回复
EnumChildWindows是不是对没有OPEN的子窗口也没有能力?
我的程序主窗口打开后不加载所有的子窗口的
加载子窗口是如下的程序
procedure OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);
{根据传递过来的参数,打开相应的窗体}
var
i: integer;
Child:TForm;
begin
for i := 0 to Screen.FormCount -1 do
if Screen.Forms[i].ClassType=FormClass then
begin
{检查窗体是否已经打开,如果没有打开,打开它,
如果已经打开,让它正常显示即可}
Child:=Screen.Forms[i];
if Child.WindowState=wsMinimized then
ShowWindow(Child.handle,SW_SHOWNORMAL)
else
ShowWindow(Child.handle,SW_SHOWNA);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
Child.Create(AOwner);
end;
bosshoss 2005-12-13
  • 打赏
  • 举报
回复
self.MDIChildCount只能得到打开的子窗口的数量
没有OPen的窗口是不会计数的
qizhanfeng 2005-12-13
  • 打赏
  • 举报
回复
self.MDIChildCount不行吗
bosshoss 2005-12-12
  • 打赏
  • 举报
回复
function EnumChildWindows(hWndParent: HWND; lpEnumFunc: TFNWndEnumProc;
lParam: LPARAM): BOOL; stdcall;
这个,试下
老之 2005-12-12
  • 打赏
  • 举报
回复
Application.MainForm.MDIChildCount
ccrun.com 2005-12-12
  • 打赏
  • 举报
回复
BOOL EnumChildWindows(
HWND hWndParent, // handle to parent window
WNDENUMPROC lpEnumFunc, // pointer to callback function
LPARAM lParam // application-defined value
);

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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