用SPY++观察:
这是个MDI程序,最外层MDI主框架的窗口名称已知-“MDIMainFrame” ---A
然后,其下有个 Class Name 为:MDIClient 的窗口 -----------B
然后,其下有个 标题为:“hSDIClient”的窗口 ------------C
然后,其下有个 Class Name 为:AfxFrameOrView70 的窗口 -------D
然后,其下有个 Class Name 为:SysListView32 的窗口 ---------E
现在有两个问题:
1、如何准确地获取该 SysListView32 窗口E的句柄???
2、在 “hSDIClient” C窗口的焦点在它的父窗口B之下时(即我点击了其父窗口B后,再FindWindowEx、MoveWindow),我无法对其C进行MoveWindw,所以,我怀疑,我使用FindWindwEx并没有正确得到其C句柄。测试通过马上给分。
这是个MDI程序,最外层MDI主框架的窗口名称已知-“MDIMainFrame” ---A
然后,其下有个 Class Name 为:MDIClient 的窗口 -----------B
然后,其下有个 标题为:“hSDIClient”的窗口 ------------C
然后,其下有个 Class Name 为:AfxFrameOrView70 的窗口 -------D
然后,其下有个 Class Name 为:SysListView32 的窗口 ---------E
现在有两个问题:
1、如何准确地获取该 SysListView32 窗口E的句柄???
2、在 “hSDIClient” C窗口的焦点在它的父窗口B之下时(即我点击了其父窗口B后,再FindWindowEx、MoveWindow),我无法对其C进行MoveWindw,所以,我怀疑,我使用FindWindwEx并没有正确得到其C句柄。测试通过马上给分。
方便的话给我看看
但是,上面所说的程序却似乎不行。难道程序会有什么保护不成?还有,上述问题2更加严重了,当B在顶层时,我居然无法获得A B C D的句柄。
EnumWindow可以找到CListView(CListCtrl)吗???
hTemp=FindWindowEx(hTemp,0,"MDIClient","");
hTemp=FindWindowEx(hTemp,0,NULL,"hSDIClient");
hTemp=FindWindowEx(hTemp,0,"AfxFrameOrView70","");
hTemp=FindWindowEx(hTemp,0,"SysListView32","");
试试看!
正如hyamw(林锋)所说,用SPY++监视,完全可以找到问题出在哪
就是注册的类名,就如你看到cedit控件类名为edit一样.
可能有其他含义(比如显示一些额外的信息,由代码作者决定)
当然你也可以自己做一个.
妈的,这个破程序,主窗口标题会变。
所以,只有EnumWindows啦。
http://community.csdn.net/Expert/topic/3785/3785172.xml?temp=.3952906
多拿分。以后还请各位多多捧场。