单击鼠标左键时,不会显示位图.我正在使用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;
Run Code Online (Sandbox Code Playgroud)
我不确定代码究竟是什么问题.在Visual c ++ express中没有显示错误如果代码完全错误,有人会指出我正确的方向
LoadBitmap 仅用于加载作为可执行文件或DLL中的资源存储的位图.
要加载从BMP文件的位图,您要使用LoadImage与LR_LOADFROMFILE标志,是这样的:
bmp = (HBITMAP)LoadImage(0, filename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你可能并不真的想直接进行显示以响应WM_LBUTTONDOWN.相反,您通常希望记录位置,可能设置一个标志以指示应显示位图,并调用InvalidateRect以使您的客户端矩形无效 - 然后执行实际绘制以响应WM_PAINT.
| 归档时间: |
|
| 查看次数: |
479 次 |
| 最近记录: |