我在
Windows Vista中的C中使用VS2005创建了一个带有createwindow()api的窗口
我的要求是在该窗口上绘制一个图像(任何格式).
我在这个应用程序中没有使用任何MFC.
请帮我一些代码片段.
不完全确定你的问题是什么:在窗体上画一个位图,或者你想知道如何使用各种图像格式,或者两者兼而有之.无论如何,下面是一个例子,您可以如何加载位图并在表单上绘制它:
原文链接:https://www.f2er.com/windows/363775.htmlHBITMAP hBitmap = NULL; LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) { int wmId,wmEvent; switch (message) { <...> case WM_CREATE: hBitmap = (HBITMAP)LoadImage(hInst,L"c:\\test.bmp",IMAGE_BITMAP,LR_LOADFROMFILE); break; case WM_PAINT: PAINTSTRUCT ps; HDC hdc; BITMAP bitmap; HDC hdcMem; HGdioBJ oldBitmap; hdc = BeginPaint(hWnd,&ps); hdcMem = CreateCompatibleDC(hdc); oldBitmap = SelectObject(hdcMem,hBitmap); GetObject(hBitmap,sizeof(bitmap),&bitmap); BitBlt(hdc,bitmap.bmWidth,bitmap.bmHeight,hdcMem,SRCCOPY); SelectObject(hdcMem,oldBitmap); DeleteDC(hdcMem); EndPaint(hWnd,&ps); break; case WM_DESTROY: DeleteObject(hBitmap); PostQuitMessage(0); break; default: return DefWindowProc(hWnd,message,wParam,lParam); } return 0; }
LoadImage加载图标,光标,动画光标或位图.详情here
对于使用各种图像格式,您可以使用Windows映像组件(参见IWICBitmapDecoder)或代码从这里Loading JPEG and GIF pictures或第三方工具,如FreeImage或LeadTools
希望这有帮助,问候