DestroyWindow函数注意事项

最近遇到这样一个问题:将一个窗口句柄以参数的形式传递给一个线程,在线程中使用完之后要将窗口销毁,调用DestroyWindow销毁窗口是返回false,GetLastError的结果为5:拒绝访问,而在线程外则是可以销毁的。

查阅msdn,解释如下:

A thread cannot use DestroyWindow to destroy a window created by a different thread.

此外,还有以下需要注意的点:

If the specified window is a parent or owner window, DestroyWindow automatically destroys the associated child or owned windows when it destroys the parent or owner window. The function first destroys child or owned windows, and then it destroys the parent or owner window.

If the window being destroyed is a child window that does not have the WS_EX_NOPARENTNOTIFY style, a WM_PARENTNOTIFY message is sent to the parent.

更多信息详见msdn:https://msdn.microsoft.com/en-us/library/ms632682.aspx

时间: 2024-12-27 23:15:32

DestroyWindow函数注意事项的相关文章

js foreach函数 注意事项(break、continue)

foreach API说明: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach 说明: forEach 遍历的范围在第一次调用 callback 前就会确定.调用forEach 后添加到数组中的项不会被 callback 访问到.如果已经存在的值被改变,则传递给 callback 的值是 forEach 遍历到他们那一刻的值.已删除的项不会被遍历到.如果已访

c语言的scanf函数注意事项

.scanf函数的注意事项 *1.回车可以刷新键盘缓冲区的内容 *2.单个字符要用单撇号括起来 *3.   scanf("%d",&b);//如果给b正确输入,那么a的值就是一个换行符. scanf("%c",&a);//如果给b输入一个字符型(不正确输入),那么这个字符型就会赋值给a *4.scanf("%d%d",&a,&b);//对于输入连续的整形或者浮点型数据,可以用空白符起到间隔数据的作用,字符型的话不用

js自执行函数注意事项

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> //仅声明了函数,不会自执行,报错 function aa(){ console.log('aa'); }() //自执行情况 </s

BufferedReader.mark()函数注意事项

BufferedRedder.mark()注意事项,在如下代码u3 = br3.readLine();会出现java.lang.OutOfMemoryError: Java heap space异常. 主要是由于BufferedRedder.mark(2147483632),2147483632数值过大导致,所以尽量不要设置太大,更不要 BufferedRedder.mark(Integer.MAX_VALUE).如果设置过大,通过任务管理器可以看到此进程占用内存特别大.所以设置时够用即可. S

Excel使用SUMIF函数注意事项

sumif函数的公式使用方法如下: =sumif(查询匹配的区域,条件,汇总求和的区域) 条件可以是“>10”或"=10"这种格式.其中“查询匹配区域”和“汇总求和区域”需要注意格式是常规或数字(不能是文本). 使用方法如下图所示:

vue箭头函数注意事项

不要在选项属性或回调上使用箭头函数, 比如 created: () => console.log(this.a) 或 vm.$watch('a', newValue => this.myMethod()). 因为箭头函数是和父级上下文绑定在一起的,this 不会是如你所预期的 Vue 实例,经常导致 Uncaught TypeError: Cannot read property of undefined 或 Uncaught TypeError: this.myMethod is not a

Linux中backtrace()系列函数的应用实例

一.引言 backtrace()系列函数可用来输出代码出错时的函数调用关系. A backtrace is the series of currently active function calls for the program. #include <execinfo.h> int backtrace(void **buffer, int size); char **backtrace_symbols(void *const *buffer, int size); void backtrac

WM_CLOSE、WM_DESTROY、WM_QUIT学习总结(点击关闭按钮会触发WM_CLOSE消息,DestroyWindow API会触发WM_DESTROY和WM_NCDESTROY消息,MSDN上写的很清楚)

WM_CLOSE:关闭应用程序窗口 WM_DESTROY:关闭应用程序 WM_QUIT:关闭消息循环 只有关闭了消息循环,应用程序的进程才真正退出(在任务管理器里消失). win32应用程序的完整退出过程:点击窗口右上角的关闭按钮,发送WM_CLOSE消息.此消息处理中调用DestroyWindow函数,发送WM_DESTROY消息.此消息处理中调用PostQuitMessage(0)函数,发送WM_QUIT消息到消息队列中.GetMessage捕获到WM_QUIT,返回0,退出循环(应用程序真

php--关于函数(1)的基本形式

函数的定义:  函数是一个被命名的独立的代码段,它执行特定任务并可以给调用它的程序返回一个值 函数的优点: 1. 提高程序的重用性 2. 提高程序的可维护性 3.可以提高软件的开发效率 4.提高软年的可靠性 5.控制程序的复杂性 使用函数注意事项: 一.函数必须调用才能执行,可以在声明之前调用,也可以在函数声明之后调用 二.函数名命名和变量一样, 函数名称一定要有意义 三.函数在声明时不能重名 1.function 函数名(){ 函数体 } 2.function 函数名(参数1, 参数2, 参数