请教各位达人这段代码的含义
LRESULT CALLBACK CVisualExt::WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
CVisualExt* ext = (CVisualExt*)::GetWindowLong(hwnd, GWL_USERDATA);
switch(uMsg)
{
case WM_CREATE:
return 0;
case WM_SIZE:
return 0;
case WM_COMMAND:
return 0;
case WM_ERASEBKGND:
return 1;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
RECT rc;
GetClientRect(hwnd, &rc);
HDC lmemdc = CreateCompatibleDC(hdc);
HBITMAP hmembmp = CreateCompatibleBitmap(hdc, rc.right - rc.left, rc.bottom - rc.top);
HBITMAP oldbmp = (HBITMAP)SelectObject(lmemdc, hmembmp);
memdc = lmemdc;
ext->TriggerEvent("onpaint");
BitBlt(hdc, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, lmemdc, 0, 0, SRCCOPY);
SelectObject(lmemdc, oldbmp);
DeleteObject(hmembmp);
DeleteDC(lmemdc);
EndPaint(hwnd, &ps);
return 0;
}
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}