LRESULT CALLBACK CCustomMsgObject::__WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
CCustomMsgObject* pThis = NULL;
if (uMsg == WM_NCCREATE) {
LPCREATESTRUCT lpCS = reinterpret_cast<LPCREATESTRUCT>(lParam);
pThis = static_cast<CCustomMsgObject*>(lpCS->lpCreateParams);
ATLASSERT(NULL != pThis);
::SetWindowLongPtr(hwnd, GWLP_USERDATA, reinterpret_cast<LONG>(pThis));
} else {
pThis = reinterpret_cast<CCustomMsgObject*>(::GetWindowLongPtr(hwnd, GWLP_USERDATA));
if (NULL == pThis || pThis->m_hWnd != hwnd) {
return ::DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return pThis->HandleMessage(uMsg, wParam, lParam);
}
return ::DefWindowProc(hwnd, uMsg, wParam, lParam);
}
LRESULT CCustomMsgObject::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_COPYDATA) {
if (OnCopyData((HWND)wParam, (COPYDATASTRUCT*)lParam)) {
return S_OK;
}
}
return ::DefWindowProc(m_hWnd
自定义类处理消息循环HWND_MESSAGE
最新推荐文章于 2021-12-26 16:48:53 发布