65.9K
CodeProject 正在变化。 阅读更多。
Home

WTL 类的方法转换

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (12投票s)

2006年2月12日

viewsIcon

27670

WTL 类的方法转换

引言

通常需要从类型为 HWND 的参数中获取基类函数。如果无法使用 static_cast 方法,该如何操作?

对于 MFC,可以相当简单地解决这个问题。例如,对于 CScrollView,您应该获取函数方法 GetScrollPosition()。对于 MFC,这可以简单地解决:

 

CMyClass::MyFunction(HWND hWnd)

{

            CScrollView * p = (CScrollView *) CScrollView::FromHandle(hWnd);

            CPoint ptScroll = pScroll->GetScrollPosition();

}

 

如何在 WTL 中解决类似的问题?

假设我们需要获取函数 

voidGetScrollOffset( POINT& ptOffset)

来自类型为 hWnd 的参数的 public class CScrollWindowImpl。

 

class CScrollView : public CScrollWindowImpl<CScrollView>

{

public:

            CScrollView(HWND hWnd){ m_hWnd = hWnd; }

};

 

然后在 MyFunction 方法中,我们执行

 

CMyClass::MyFunction(HWND hWnd)

{

            ……

            CScrollView tScroll(hWnd);

            POINT pt;

            tScroll.GetScrollOffset(pt);

            WTL::CPoint ptScroll(pt);

     

}

 

 

 

© . All rights reserved.