Introduction
There is often a need to obtain the base class function from a parameter of the type HWND. How can this be done, if it is not possible to use the static_cast method ?
This problem can be solved sufficiently simply for MFC. For example, for CScrollView, you should obtain the function method GetScrollPosition(). This is solved simply for MFC:
CMyClass::MyFunction(HWND hWnd)
{
CScrollView * p = (CScrollView *) CScrollView::FromHandle(hWnd);
CPoint ptScroll = pScroll->GetScrollPosition();
}
How can the analogous problem be solved in WTL?.
Let us assume we need to obtain the function
void GetScrollOffset( POINT& ptOffset)
public class CScrollWindowImpl from a parameter of the type hWnd. We create the prototype of the class of the parameter.
class CScrollView : public CScrollWindowImpl<CScrollView>
{
public:
CScrollView(HWND hWnd){ m_hWnd = hWnd; }
};
And then in MyFunction method we make
CMyClass::MyFunction(HWND hWnd)
{
��
CScrollView tScroll(hWnd);
POINT pt;
tScroll.GetScrollOffset(pt);
WTL::CPoint ptScroll(pt);
}