单击鼠标左键时,不会显示位图。 我正在使用visual c ++ express
HDC DC, memDC;
switch(message) {
case WM_CREATE:
hBit1 = LoadBitmap(hInst, "C:\New folder (2)\MyBP1.bmp");
break;
case WM_LBUTTONDOWN:
DC = GetDC(hwnd);
memDC = CreateCompatibleDC(DC);
SelectObject (memDC, hBit1);
BitBlt(DC, LOWORD(lParam), HIWORD(lParam), 27, 59, memDC, 0, 0, SRCCOPY);
ReleaseDC(hwnd, DC);
DeleteDC(memDC);
break;
我不确定代码究竟是什么问题。 在Visual c ++ express中没有显示错误 如果代码完全错误,有人会指出我正确的方向
答案 0 :(得分:6)
LoadBitmap
仅用于加载作为可执行文件或DLL中的资源存储的位图。
要从BMP文件加载位图,您希望将LoadImage
与LR_LOADFROMFILE
标志一起使用,如下所示:
bmp = (HBITMAP)LoadImage(0, filename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
顺便说一句,你可能不想直接在WM_LBUTTONDOWN
回复时进行显示。相反,您通常希望记录位置,可能设置一个标志以指示应显示位图,并调用InvalidateRect
使客户矩形无效 - 然后执行实际绘图以响应WM_PAINT