Windows-从TreeView获取HWND以获得GetScrollInfo?

时间:2018-11-15 16:14:30

标签: .net winapi treeview hwnd

我是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的函数吗?< / p>

有人知道该怎么做吗?这应该超级简单,但是我找不到答案。

1 个答案:

答案 0 :(得分:1)

根据Control.Handle文档:

  

包含控件的窗口句柄(HWND)的IntPtr。

     

...

     

Handle属性的值是Windows HWND。如果尚未创建句柄,则引用该属性将强制创建该句柄。

是的,您可以将IntPtr键入到HWND中,例如:

(HWND)(poTreeView->Handle.ToPointer())

static_cast<HWND>(poTreeView->Handle.ToPointer())