Winapi 正在销毁没有父WIN32 APi的子窗口

Winapi 正在销毁没有父WIN32 APi的子窗口,winapi,Winapi,我有一个问题。我试图破坏子窗口,但它也破坏父窗口,所以应用程序关闭。 我有这样的代码 HWND cloneWin =FindWindowEx(hWnd, 0, szChildWin, 0); if (cloneWin) { MessageBox(NULL,"You are trying to create more than one child window\n Current child window will be destroyed", "Messa

我有一个问题。我试图破坏子窗口,但它也破坏父窗口,所以应用程序关闭。 我有这样的代码

HWND cloneWin =FindWindowEx(hWnd, 0, szChildWin, 0);
        if (cloneWin) {
            MessageBox(NULL,"You are trying to create more than one child window\n Current child window will be destroyed", "Message", MB_OK|MB_ICONINFORMATION);
          DestroyWindow(cloneWin);
        }
怎么了? 提前谢谢

报告说:

线程不能使用DestroyWindow销毁由其他线程创建的窗口

由于您试图使用
FindWindowEx
查找这些窗口,很明显这些窗口是在不同的进程中创建的,更不用说不同的线程了。换句话说,对
销毁窗口的调用永远不会成功。很难知道为什么这会导致另一个应用程序宕机,但既然您没有遵守规则,那么我认为任何事情都可能发生是合理的


我认为您可以向窗口发送一条
WM_CLOSE
消息,并希望它通过调用
destroy window
进行响应,这是合理的。这将是对
DestroyWindow
的有效调用,因为它将在创建窗口的线程上进行。但这一切都取决于另一个窗口如何响应
WM\u CLOSE

Thx的回复,我刚刚尝试了SendMessage(cloneWin,WM\u CLOSE,0,0);但是它也破坏了所有的应用程序((我猜你是运气不好。为什么你不尝试一种不那么激进的方法。尽管如此,我相信我有你的问题。