.net - Windows - 从 TreeView 获取 HWND 以获取 GetScrollInfo?
问题描述
我是 Windows 编程新手,并试图获取 TreeView 滚动条的位置。
SCROLLINFO scrollInfo;
ZeroMemory(&scrollInfo, sizeof(scrollInfo));
scrollInfo.cbSize = sizeof(scrollInfo);
scrollInfo.fMask = SIF_TRACKPOS;
tbool gotScrollInfo = GetScrollInfo(poTreeView->Handle, SB_VERT, &scrollInfo);
我收到一个错误:
'BOOL GetScrollInfo(HWND,int,LPSCROLLINFO)': cannot convert argument 1 from 'System::IntPtr' to 'HWND'.
我在网上查看过,找不到如何从 TreeView 指针到HWND
. Windows 的文档假定您已经拥有 HWND。
TreeView.hwnd
我见过人们使用或TreeView.Handle
转换为的其他地方IntPtr
- 我猜这个函数用来代替HWND
?
有谁知道如何做到这一点?这应该非常简单,但我找不到答案。
解决方案
根据Control.Handle
文档:
包含控件的窗口句柄 (HWND) 的 IntPtr。
...
Handle 属性的值是 Windows HWND。如果尚未创建句柄,则引用此属性将强制创建句柄。
所以是的,您可以简单地将 类型IntPtr
转换为HWND
,例如:
(HWND)(poTreeView->Handle.ToPointer())
或者
static_cast<HWND>(poTreeView->Handle.ToPointer())
推荐阅读
- python - 词袋标记每个字母而不是单词
- python - 尝试在 python 中为文本文件中的数量级制作直方图
- javascript - 如何在 vue.js 上接收 HTTP POST 参数?
- prestashop-1.7 - 在产品页面点击保存按钮后挂钩
- javascript - 将两个数组变成json数据
- dialogflow-es - 从我的 Actions on Google 链接到 Web url
- linux - 将 tee 与 bash 一起使用会导致一些脚本挂起
- apache-spark - Apache PySpark - 获取最新记录问题
- java - 活动主题不变
- css - 如何同时转换多个元素的属性