注册 登录
编程论坛 VC.NET论坛

[求助]如何得到一个窗体的handle

sdpdww 发布于 2006-07-16 09:22, 2917 次点击
我想使用DestroyWindow函数关闭一个非模式窗体,但是我不知道如何得到某个窗体的handle,希望高手帮帮忙。
我还是描述的详细一些:
假设我用mfc的对话框模式建立了一个工程,在启动窗体启动起来以后,我有建立的一个非模式窗体,我想在启动窗体上面添加一个按钮,当单击这个按钮的时候就可以把后来建立的那个非模式窗体关闭,但是我不知道怎么得到那个非模式窗体的handle,请问我该怎么办?
先谢谢大家了
6 回复
#2
NET爱好者2006-07-17 22:49
Getparent()得到父窗体句柄.GetMenu()得到菜单窗体句柄.GetSubMenu()得到子菜单句柄.其他的也是get开头的,还可以得到视图窗口句柄等等...你查查msdn.
#3
sdpdww2006-07-19 13:13

谢谢,我已经找到解决的方法了,使用FindWindow函数,HWND whwnd=::FindWindow("窗口的标题");
同样要谢谢你啊

#4
NET爱好者2006-07-19 20:51

呵呵,不用谢。

#5
热情依然2006-07-20 12:50
或者用FindWindowEx, 或者用EnumWindow
#6
WindyGo2006-08-03 15:13
HWND FindWindow(LPSTR,LPSTR)//一般用来找窗口
FindWindow("窗口类名称(不区分大小)"(可以为NULL),"窗口标题"(可以为NULL))
HWND FindWindowEx(HWND,HWND,LPSTR,LPSTR)//一般用来找窗口中的控件
FindWindowEx(母窗口句柄,NULL,"类名称(如Button,Edit,ComboBox,PasswordEdit等,不区分大小写)","标题")

[此贴子已经被作者于2006-8-3 15:15:56编辑过]

#7
yeshirow2006-08-06 07:47
同一專案中用一個 全局變數(組), 當打開這個非模式對話框時, 在處理非模式的構造中記錄下這個窗口的 handle 就可以用了
1