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);但是它也破坏了所有的应用程序((我猜你是运气不好。为什么你不尝试一种不那么激进的方法。尽管如此,我相信我有你的问题。