【发布时间】:2018-11-15 16:14:30
【问题描述】:
我是 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?
有人知道怎么做吗?这应该是超级简单的,但我找不到答案。
【问题讨论】:
-
那是什么语言?发布您用于 GetScrollInfo 的 pinvoke 呼叫。一般来说,是的,treeView1.Handle 就是您要查找的 HWND。
-
.net标签没用。你用什么语言编写代码?托管还是非托管?GetScrollInfo()的声明在哪里?