您的位置:首页 > 其它

left of '->GetStatus' must point to class/struct/union/generic type

2012-04-28 11:47 561 查看
LRESULT CALLBACK PlayWindow::PlayWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)//这是一个static成员函数

{

switch (uMsg)

{

case WM_LBUTTONDOWN:

if(m_pIPlayCtrl->GetStatus() == 3)

{

m_pIPlayCtrl->Pause();

}

break;

default:

return DefWindowProc(hWnd, uMsg, wParam, lParam);

}

return DefWindowProc(hWnd, uMsg, wParam, lParam);

}

由于PlayWindowProc是窗口过程,在类中定义成static成员函数,m_pIPlayCtrl是非static变量,访问出现问题。

解决该问题:可以在static成员函数[b]PlayWindowProc变为非static成员函数,另外添加一个static成员函数__[b]PlayWindowProc,调用PlayWindowProc,这样[b]PlayWindowProc就可以访问非static成员了。如下所示:[/b][/b][/b]

LRESULT CALLBACK PlayWindow::__PlayWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

PlayWindow* pThis = reinterpret_cast<PlayWindow*>(GetWindowLong(hWnd, GWL_USERDATA));

if(pThis)

{

return pThis->PlayWindowProc(hWnd, uMsg, wParam, lParam);

}

return DefWindowProc(hWnd, uMsg, wParam, lParam);

}

//视频播放窗口的过程函数////////////////////////////////////////////////////////////////////////

LRESULT CALLBACK PlayWindow::PlayWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

switch (uMsg)

{

case WM_LBUTTONDOWN:

if(m_pIPlayCtrl->GetStatus() == 3)

{

m_pIPlayCtrl->Pause();

}

break;

default:

return DefWindowProc(hWnd, uMsg, wParam, lParam);

}

return DefWindowProc(hWnd, uMsg, wParam, lParam);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐