OnMouseMove事件为什么容易死掉?
LRESULT OnMouseMove(WPARAM wParam, LPARAM lParam)
{
int x = GET_X_LPARAM(lParam);
int y = GET_Y_LPARAM(lParam);
HDC hdc, srcDC;
hdc = GetDC(hWnd);
HBITMAP srcBMP, _srcBMP, RgnBMP, _RgnBMP;
srcBMP = (HBITMAP)LoadImage(hInst, "UI\\cat.BMP", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
RgnBMP = (HBITMAP)LoadImage(hInst, "UI\\ctrlRgn.BMP", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
srcDC = CreateCompatibleDC(hdc);
_srcBMP = (HBITMAP) SelectObject(srcDC, (HGDIOBJ) srcBMP);
if (x > RGN[0].left && x < RGN[0].left+RGN[0].right && y > RGN[0].top && y < RGN[0].top+RGN[0].bottom) {
BitBlt(hdc, RGN[0].left, RGN[0].top, RGN[0].right, RGN[0].bottom, srcDC, 0, 0, SRCCOPY);
} else if (x > 20 && x < 120 && y > 100 && y < 140) {
BitBlt(hdc, RGN[1].left, RGN[1].top, RGN[1].right, RGN[1].bottom, srcDC, 0, 0, SRCCOPY);
} else if (x > 20 && x < 120 && y > 180 && y < 220) {
BitBlt(hdc, RGN[2].left, RGN[2].top, RGN[2].right, RGN[2].bottom, srcDC, 0, 0, SRCCOPY);
} else if (x > 20 && x < 120 && y > 260 && y < 300) {
BitBlt(hdc, RGN[3].left, RGN[3].top, RGN[3].right, RGN[3].bottom, srcDC, 0, 0, SRCCOPY);
} else {
RePaint();
}
ReleaseDC(hWnd, srcDC);
DeleteDC(srcDC);
ReleaseDC(hWnd, hdc);
DeleteDC(hdc);
// Sleep(10);
return 0;
}
是不是因为在事件中处理了分配DC加载图片的原因了?