这个问题搞了两天,找了好多资料,大多人都说不到新手要求知道的点上。今天付一个完整的例子。
资源的dll不用说了,很简单,一行代码不用写,直接添加资源,封装就可以。
关键就在于调用要怎么调用。目前把bmp的先贴 上来,后续试验jpg,gif,png
代码:
Code
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
hMod=LoadLibrary(L"image1.dll");
hdcWindow=CreateCompatibleDC(hdc); //创建一个与指定设备一致的内存设备描述表
hBitmap=LoadBitmap(hMod,MAKEINTRESOURCE(IDB_BITMAP1)); //从资源加载bmp
GetObject(hBitmap,sizeof(BITMAP),&bm); //得到图像的信息,并填充到指定的BITMAP结构
SelectObject(hdcWindow,hBitmap); //为设备描述表选择一个对象
GetClientRect(hWnd,&rect); //获取客户端的坐标信息,制定客户去的左上角和右下角
BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hdcWindow,0,0,SRCCOPY); //对制定的设备区域传送
ReleaseDC(hWnd,hdcWindow);// 释放设备描述表
FreeLibrary(hMod); //释放dll
EndPaint(hWnd, &ps);
break;
在LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
此函数的消息处理里。注释写的大多意思,大家看不懂可以查下msdn。
不正确的欢迎大家指出