1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C# 基础(二十五)WPF/WinForm 控件的句柄是什么意思?

C# 基础(二十五)WPF/WinForm 控件的句柄是什么意思?

时间:2019-11-04 20:39:43

相关推荐

C# 基础(二十五)WPF/WinForm 控件的句柄是什么意思?

一、什么是句柄

句柄实际上是一种指向某种资源的指针。

但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。

所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),

平时只是在调用API函数时利用这个句柄来说明要操作哪段内存。

C# 中因为没有指针 所以指的是windows窗口中(包括窗口本身,以及不可见的窗口?) 每个控件对应的一个找寻得到它们的地址(实际是内存指针) 以便编程时候能够迅速定位它们,设置或者获取这些控件的状态、值等操作。

二、WPF下取得控件或窗体的句柄

因为在WinForm下得到句柄的方法比较简单,所以我们不讨论WinForm句柄,只讨论WPF的句柄。

窗体: IntPtr hwnd = new WindowInteropHelper(this).Handle;控件: IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(uielement)).Handle;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。