进程主窗体的判定???

ygwaatas 2002-06-22 11:57:44
一个进程有很多主窗体,但怎么判定一个窗体是否是这个进程的主窗体呢???
...全文
98 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
nhconch 2002-06-23
  • 打赏
  • 举报
回复
很简单的,看好了:
HWND hwnd;
hwnd = 你要查的子窗体名柄;
while (GetParent(hwnd)) hwnd = GetParent(hwnd);

//hwnd就是主窗体句柄了。
wyb_Ultra 2002-06-23
  • 打赏
  • 举报
回复
学习!
naughtyboy 2002-06-23
  • 打赏
  • 举报
回复
showmessage(application->mainform->caption);
bcb_fans 2002-06-22
  • 打赏
  • 举报
回复
我以前的代码如下:

HWND hWnd;//任一个窗口,通过EnumThreadWindow函数获得

HWND AppWin,MainWin;

------

AppWin=GetWindow(hWnd,GW_OWNER);

while(AppWin!=NULL)
{
MainWin=AppWin;
AppWin=GetWindow(AppWin,GW_OWNER);
}

MainWin就是主窗口.
bcb_fans 2002-06-22
  • 打赏
  • 举报
回复
我以前编写过这样的程序,但是VCL样式,非VCL样式的还没有进行研究,先研究研究再说.

象plainsong(伤心的风) 所指的那种情况,我的方法就没有办法判断.
bcb_fans 2002-06-22
  • 打赏
  • 举报
回复
我以前编写过这样的程序,但是VCL样式,非VCL样式的还没有进行研究,先研究研究再说.

象plainsong(伤心的风) 所指的那种情况,我的方法就没有办法判断.
ygwaatas 2002-06-22
  • 打赏
  • 举报
回复
to BCB_FANS:
你那样不是死循环了???
ygwaatas 2002-06-22
  • 打赏
  • 举报
回复
to jishiping:
不是,我直接在窗体里的!!
ygwaatas 2002-06-22
  • 打赏
  • 举报
回复
to BCB_FANS:
能给出具体的代码吗?谢谢!!!
jishiping 2002-06-22
  • 打赏
  • 举报
回复
我也试了,可以啊。你是不是用了VCL写的DLL,而DLL里有VCL的窗口?
短歌如风 2002-06-22
  • 打赏
  • 举报
回复
TO:BCB_FANS(四大名捕之追杀令)
你的方法只适用于使用标准的VCL框架的程序。非VCL的程序呢?如果我在主程序中这样这样写呢:
...
Form2 = TForm2.Create(NULL);
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
delete Form2;
...
ygwaatas 2002-06-22
  • 打赏
  • 举报
回复
to BCB_FANS:
直接用GetWindow(...,GW_OWNER)可以不可以??
短歌如风 2002-06-22
  • 打赏
  • 举报
回复
是否进程的主窗口只在于窗口函数中的这样一段代码:
switch(uMsg)
{
...
case WM_DESTROY:
PostQuitMessage(0);
}
一个进程可以有多个主窗口,所以是没有办法判断的。
ygwaatas 2002-06-22
  • 打赏
  • 举报
回复
To jishiping:
不行啊,什么都没有???
bcb_fans 2002-06-22
  • 打赏
  • 举报
回复
首先得到这个进程的人一个窗口.然后不停地使用函数GetWindow(..,GW_OWNER)查找直到返回值为空,倒数第二个窗口就是主窗口,因为倒数第一个是App Window.

具体需要判断一下.
jishiping 2002-06-22
  • 打赏
  • 举报
回复
if (this==Application->MainForm)
ShowMessage("这个窗口是主窗体");

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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