wince的png贴图

来源:互联网 发布:2017高仿耐克淘宝店 编辑:程序博客网 时间:2024/05/01 03:16
#include <initguid.h>#include <imaging.h>#pragma comment (lib,"Ole32.lib")
         HRESULT hr ; //返回结果IImagingFactory * pImagingFactory =NULL; //Image工厂接口对象IImagingFactory * pImagingFactory2 =NULL; //Image工厂接口对象IImagingFactory * pImagingFactory3 =NULL; //Image工厂接口对象IImage * pImage = NULL; //Image接口对象;IImage * pImage2 = NULL; //Image接口对象;IImage * pImage3 = NULL; //Image接口对象;LPCTSTR szFileName = L"\\000.png"; //图象文件notice.png//Windows Embedded.jpg//test.jpgLPCTSTR szFileName2 = L"\\disconn.png"; //图象文件notice.png//Windows Embedded.jpg//test.jpgLPCTSTR szFileName3 = L"\\conn.png"; //图象文件notice.png//Windows Embedded.jpg//test.jpg//初始化COM环境if (FAILED(hr = CoInitializeEx(NULL, COINIT_MULTITHREADED))){TRACE(L"COINIT_MULTITHREADED ERROR");return;}/////////////////////////////////得到Image工厂接口对象hr = CoCreateInstance(CLSID_ImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IImagingFactory, (void**) &pImagingFactory);if (FAILED(hr)){TRACE(L"IMAGE FACTORY CREATED ERROR");goto finish;}//加载图象文件到IImage接口对象中hr = pImagingFactory->CreateImageFromFile(szFileName,&pImage);if (FAILED(hr)){TRACE(L"IMAGE LOAD ERROR");goto finish;} /////////////////////////////////得到Image工厂接口对象hr = CoCreateInstance(CLSID_ImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IImagingFactory, (void**) &pImagingFactory2);if (FAILED(hr)){TRACE(L"IMAGE FACTORY CREATED ERROR");goto finish;}//加载图象文件到IImage接口对象中hr = pImagingFactory->CreateImageFromFile(szFileName2,&pImage2);if (FAILED(hr)){TRACE(L"IMAGE LOAD ERROR");goto finish;} /////////////////////////////////得到Image工厂接口对象hr = CoCreateInstance(CLSID_ImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IImagingFactory, (void**) &pImagingFactory3);if (FAILED(hr)){TRACE(L"IMAGE FACTORY CREATED ERROR");goto finish;}//加载图象文件到IImage接口对象中hr = pImagingFactory->CreateImageFromFile(szFileName3,&pImage3);if (FAILED(hr)){TRACE(L"IMAGE LOAD ERROR");goto finish;} ImageInfo p,p2;pImage->GetImageInfo(&p);pImage2->GetImageInfo(&p2);int i=p.Width;int j=p.Height;int g=p2.Width;int h=p2.Height;//开始绘制图象//得到设备环境{HDC hdc=::GetDC(m_hWnd);HBITMAP hBitmap = ::CreateCompatibleBitmap(hdc,i,j);HDC hdcMem = ::CreateCompatibleDC(hdc);HBITMAP Old_bitmap=(HBITMAP)::SelectObject(hdcMem,hBitmap);CRect rect,rect2(20,20,84,84);GetClientRect(&rect);pImage->Draw(hdcMem,&rect,NULL);/*HBITMAP hBitmap2 = ::CreateCompatibleBitmap(hdc,g,h);HDC hdcMem2 = ::CreateCompatibleDC(hdc);HBITMAP Old_bitmap2=(HBITMAP)::SelectObject(hdcMem2,hBitmap2);*/if(!IsConn){pImage2->Draw(hdcMem,&rect2,NULL);IsConn=true;}else{pImage3->Draw(hdcMem,&rect2,NULL);IsConn=false;}//pImage2->Draw(hdcMem,&rect2,NULL);::SetBkMode(hdcMem,TRANSPARENT);CString str;str.Format(_T("%d"),ii);::DrawText(hdcMem,str,str.GetLength(),&rect,DT_LEFT);BitBlt(hdc,0,0,rect.Width(),rect.Height(),hdcMem,0,0,SRCCOPY);::SelectObject(hdcMem,Old_bitmap);//::SelectObject(hdcMem2,Old_bitmap2);//::DeleteObject(hBitmap2);::DeleteObject(hBitmap);//::DeleteDC(hdcMem2);::DeleteDC(hdcMem);::ReleaseDC(m_hWnd,hdc);}//goto  finish;finish://释放IImage接口对象if (pImage)pImage->Release();//释放IImagingFactory接口对象if (pImagingFactory)pImagingFactory->Release();if (pImage2)pImage2->Release();//释放IImagingFactory接口对象if (pImagingFactory2)pImagingFactory2->Release();if (pImage3)pImage3->Release();//释放IImagingFactory接口对象if (pImagingFactory3)pImagingFactory3->Release();//释放程序占用的COM资源CoUninitialize();

原创粉丝点击