关于查找窗口的问题,如何找到我需要的窗口
我的mfc对话框程序在运行中需要用到FindWindow来查找指定标题的窗口,然后根据是否找到来决定是否新建窗口,FindWindow的两个参数都使用了,其中类名称为"#32770",可如果遇到其他类名称相同标题也相同的窗口就不行了(比如其他用vc开发的mfc程序),请问如何解决这样的问题?
[解决办法]
用窗口标题来找就是了。
[解决办法]
用GetWindowThreadProcessId获取进程ID,来判断是不是你感兴趣的目标进程的窗口.
另外,只用类肯定不行,如果目标窗口标题固定,最好再加上标题进行判断.
[解决办法]
再往深一层查找:例如两个程序的主窗口的类名和标题名可能都相同,但其窗口中的或子窗口中的某个控件可能不同,依次来进行比较。
[解决办法]
Enumwindow
在里面判定找到的窗口所有在processid是否与自己程序的processid相同
[解决办法]
如果你要找的窗口是自己写的程序,完全可以把类名称起的复杂一些,让它不可能重名,比如
window_DDC72340_9660_4DB9_B4E1_403114C0FB45
这类