我是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>
有人知道该怎么做吗?这应该超级简单,但是我找不到答案。
答案 0 :(得分:1)
根据Control.Handle
文档:
包含控件的窗口句柄(HWND)的IntPtr。
...
Handle属性的值是Windows HWND。如果尚未创建句柄,则引用该属性将强制创建该句柄。
是的,您可以将IntPtr
键入到HWND
中,例如:
(HWND)(poTreeView->Handle.ToPointer())
或
static_cast<HWND>(poTreeView->Handle.ToPointer())