📄 u_fun.cpp
字号:
#include "stdafx.h"
#include "u_fun.h"
#include "Imaging.h"
#include <initguid.h>
#include <imgguids.h>
void DrawBmp(CDC* pDC,UINT id,const RECT* pRect)
{
CDC dc;
dc.CreateCompatibleDC(pDC);
CBitmap bitmapBkgnd;
bitmapBkgnd.LoadBitmap(id);
CBitmap* pOldBitmap = dc.SelectObject(&bitmapBkgnd);
pDC->BitBlt (pRect->left,
pRect->top,
pRect->right-pRect->left,
pRect->bottom-pRect->top,
&dc,
0, 0, SRCCOPY);
dc.SelectObject(pOldBitmap);
}
void DrawJpg(CDC* pDC,UINT ImgID,const RECT* pRect)
{
IImagingFactory *pImgFactory ;
IImage *pImage ;
HBITMAP hResult = 0;
HRESULT hr;
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
hr = CoCreateInstance (CLSID_ImagingFactory,
NULL,
CLSCTX_INPROC_SERVER,
IID_IImagingFactory,
(void **)&pImgFactory);
if(SUCCEEDED(hr))
{
HRSRC src = FindResource(AfxGetResourceHandle(),MAKEINTRESOURCE(ImgID),_T("JPG"));
HGLOBAL hglobal = LoadResource(AfxGetResourceHandle(), src);
LPVOID lpVoid = NULL;
lpVoid = LockResource(hglobal);
int nSize = 0;
nSize = (UINT)SizeofResource(AfxGetResourceHandle(), src);
if (SUCCEEDED(pImgFactory->CreateImageFromBuffer((BYTE*)hglobal,nSize,BufferDisposalFlagNone,&pImage)))
{
pImage->Draw(pDC->GetSafeHdc(), pRect, NULL);
pImage->Release();
}
// UnlockResource(hglobal);
DeleteObject(src);
pImgFactory->Release();
}
CoUninitialize();
}
void viewbitmap1(HDC hdc,RECT rcWnd,TCHAR szFileImage[])
{
IImagingFactory *pImgFactory ;
IImage *pImage ;
HBITMAP hResult = 0;
HRESULT hr;
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
hr = CoCreateInstance (CLSID_ImagingFactory, //SUCCEEDED宏是判断一个HRESULT结果是否为真
NULL,
CLSCTX_INPROC_SERVER,
IID_IImagingFactory,
(void **)&pImgFactory);
if(SUCCEEDED(hr))
{
if (SUCCEEDED(pImgFactory->CreateImageFromFile(_T("\\set1_bg.bmp"), &pImage)))
{
CWindowDC dc(0);
CDC dcBitmap;
dcBitmap.CreateCompatibleDC(&dc);
//hResult = CreateCompatibleBitmap(dc.GetSafeHdc(), width, heigth);
hResult = CreateCompatibleBitmap(dc.GetSafeHdc(), 480, 234);
if (hResult)
{
HGDIOBJ hOldBitmap = dcBitmap.SelectObject(hResult);
//pImage->GetThumbnail(0,0,&pImage);
//pImage->Draw(dc.GetSafeHdc(), CRect(0, 0, width, heigth), NULL);
pImage->Draw(dc.GetSafeHdc(), CRect(0, 0, 480, 234), NULL);
dcBitmap.SelectObject(hOldBitmap);
}
pImage->Release();
}
pImgFactory->Release();
}
CoUninitialize();
}
void FillButton(PBTN_ITEM pbtn,UINT index,UINT image1,UINT image2,LPCRECT prect)
{
pbtn->iIndex = index;
pbtn->iImage1 = image1;
pbtn->iImage2 = image2;
pbtn->pRect = prect;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -